
\begin{DoxyItemize}
\item infos = Information about the tracer plugin is in keys below
\item infos/author = Markus Raab \href{mailto:elektra@libelektra.org}{\tt elektra@libelektra.\+org}
\item infos/licence = B\+SD
\item infos/provides = tracing
\item infos/needs =
\item infos/placements = pregetstorage procgetstorage postgetstorage presetstorage precommit postcommit prerollback postrollback
\item infos/status = maintained tested nodep configurable global
\item infos/description = Traces the execution path of a backend
\end{DoxyItemize}

This plugin is added on every possible position within a backend. It allows you to trace when the backend is executed.

\subsection*{Usage}

If you want to trace how and if the backend is called\+:


\begin{DoxyCode}
kdb mount file.ysp user/trace\_point your\_storage\_plugin tracer
\end{DoxyCode}


So now we can trace whats below your trace point.


\begin{DoxyCode}
kdb ls user/trace\_point
\end{DoxyCode}


Ok, no tracer is called because resolver immediately told that there is no file.


\begin{DoxyCode}
kdb get user/trace\_point
#> Did not find key
\end{DoxyCode}


Ok, same conclusion.


\begin{DoxyCode}
kdb set user/trace\_point hello
#> create a new key user/trace\_point with string "hello"
#> tracer: set(0xd34cc0, user/trace\_point): user/trace\_point 1
#> tracer: set(0xd34cc0, user/trace\_point): user/trace\_point 1
#> tracer: set(0xd34cc0, user/trace\_point): user/trace\_point 1
\end{DoxyCode}


Now the 3 placements in set are called.


\begin{DoxyCode}
kdb get user/trace\_point
#> tracer: get(0x22e1cc0, user/trace\_point): 0
#> tracer: get(0x22e1cc0, user/trace\_point): 0
#> hello
\end{DoxyCode}


Now the 2 placements in get are called.

\subsection*{Module Loading}

Will not log when loaded as module (config {\ttfamily /module} present), unless {\ttfamily /logmodule} is set\+:


\begin{DoxyCode}
kdb check -c "logmodule=" tracer
\end{DoxyCode}
 