
\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\+S\+D
\item infos/provides = tracing
\item infos/needs =
\item infos/placements = pregetstorage postgetstorage presetstorage precommit postcommit prerollback postrollback
\item infos/status = maintained tested 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{DoxyVerb}kdb mount file.ysp user/trace_point your_storage_plugin tracer
\end{DoxyVerb}


So now we can trace whats below your trace point. \begin{DoxyVerb}kdb ls user/trace_point
\end{DoxyVerb}


Ok, no tracer is called because resolver immediately told that there is no file. \begin{DoxyVerb}kdb get user/trace_point
Did not find key
\end{DoxyVerb}


Ok, same conclusion. \begin{DoxyVerb}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{DoxyVerb}


Now the 3 placements in set are called. \begin{DoxyVerb}kdb get user/trace_point
tracer: get(0x22e1cc0, user/trace_point): 0
tracer: get(0x22e1cc0, user/trace_point): 0
hello
\end{DoxyVerb}


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{DoxyVerb}kdb check -c "logmodule=" tracer\end{DoxyVerb}
 