It's no different from what I already suggested you as answer to Caption and sections, subsections and subsubsections
The only addition is that \AtBeginDocument is necessary, because listings defines there the counter.
\documentclass{article}
\usepackage{listings,chngcntr}
\AtBeginDocument{%
\counterwithin*{lstlisting}{section}
\counterwithin*{lstlisting}{subsection}
\counterwithin*{lstlisting}{subsubsection}
\renewcommand{\thelstlisting}{%
\ifnum\value{subsection}=0
\thesection.\arabic{lstlisting}%
\else
\ifnum\value{subsubsection}=0
\thesubsection.\arabic{lstlisting}%
\else
\thesubsubsection.\arabic{lstlisting}%
\fi
\fi
}%
}
\begin{document}
\section{A section}
\begin{lstlisting}[caption=Caption]
\caption{section.lstlisting}
\end{lstlisting}
\subsection{A subsection}
\begin{lstlisting}[caption=Caption]
\caption{subsection.lstlisting}
\end{lstlisting}
\begin{lstlisting}[caption=Caption]
\caption{subsection.lstlisting}
\end{lstlisting}
\subsubsection{A subsubsection}
\begin{lstlisting}[caption=Caption]
\caption{subsubsection.lstlisting}
\end{lstlisting}
\subsection{A subsection}
\begin{lstlisting}[caption=Caption]
\caption{subsection.lstlisting}
\end{lstlisting}
\section{A section}
\begin{lstlisting}[caption=Caption]
\caption{section.lstlisting}
\end{lstlisting}
\end{document}

\counterwithin{lstlisting}{subsubsection}from thechngcntrpackage. Does it help? – Ludovic C. Sep 23 '13 at 09:01chngcntrcommand is\counterwithin. – lockstep Sep 23 '13 at 09:04\numberwithin{}{}. ;) – Ludovic C. Sep 23 '13 at 09:05Error: No counter 'lstlisting' defined.Do I include it in preamble or after document beginning?
– Moirae Sep 23 '13 at 09:32