\hypertarget{trouble}{}\section{Troubleshooting}\label{trouble}
 \subsection*{Known problems:}
 \begin{CompactItemize}
\item 
Doxygen is {\em not} a real compiler, it is only a lexical scanner. This means that it can and will not detect errors in your source code. \item 
Since it impossible to test all possible code fragments, it is very well possible, that some valid piece of C/C++ code is not handled properly. If you find such a piece, please send it to me, so I can improve doxygen's parsing capabilities. Try to make the piece of code  you send as small as possible, to help me narrow down the search. \item 
Using declarations for member are not yet supported.  They are simply ignored. Using declarations for class and using  directives are supported however.  \item 
Doxygen does not work properly if there are multiple classes, structs or unions with the same name in your code. It should not crash however, rather it should ignore all of the classes with the same name except one. \item 
Some commands do not work inside the arguments of other commands. Inside a HTML link (i.e $<$a href=\char`\"{}...\char`\"{}$>$...$<$a$>$) for instance  other commands (including other HTML commands) do not work! The sectioning commands are an important exception.  \item 
Redundant braces can confuse doxygen in some cases.  For example: 

\footnotesize\begin{verbatim}
  void f (int);
\end{verbatim}\normalsize 
 is properly parsed as a function declaration, but 

\footnotesize\begin{verbatim}
  const int (a);
\end{verbatim}\normalsize 
 is also seen as a function declaration with name  {\tt int}, because only the syntax is analysed, not the semantics. If the redundant braces can be detected, as in 

\footnotesize\begin{verbatim}
  int *(a[20]);
\end{verbatim}\normalsize 
 then doxygen will remove the braces and correctly parse the result. \item 
Not all names in code fragments that are included in the documentation are replaced by links (for instance when using {\tt SOURCE\_\-BROWSER} = {\tt YES)}.  This also holds for the \char`\"{}Referenced by\char`\"{} list that is generated for each function.

For a part this is because the code parser isn't smart enough at the moment. I'll try to improve this in the future. But even with these improvements not everthing can be properly linked to the corresponding documentation, because of possible ambiguities or lack of information about the context in which the code fragment is found.  \item 
It is not possible to insert a non-member function f in a class A  using the $\backslash$relates command, if class A already has a member with name f and the same argument list. \item 
There is only very limited support for member specialization at the moment. It only works if there is a specialized template class as well. \item 
Not all special commands are properly translated to RTF. \end{CompactItemize}
\subsection*{How to help}
 The development of Doxygen highly depends on your input!

If you are trying Doxygen let me know what you think of it (do you miss certain features?). Even if you decide not to use it, please let me know why.

\subsection*{How to report a bug}


I would appreciate an e-mail if you have found a bug, or if you have ideas (or even better some code or a patch)  how to fix existing bugs and limitations. For patches please use \char`\"{}diff -u\char`\"{} or include the files you modified. If you send more than one file please tar or zip everything, so I only have to save and download one file.

Always try to include the following information in your bug report: \begin{CompactItemize}
\item 
The version of doxygen you are using (for instance 1.2.4).\item 
The name and version number of your operating system (for instance  Su\-SE Linux 6.4)\item 
It is usually a good idea to send along the configuation file as well,  but please use doxygen with the {\tt -s} flag while generating it to keep it small. \item 
The easiest way for me to solve bugs is if you can send me a small example demonstrating the problem you have. Please make sure the example is valid source code (could potentially compile) and that the problem is really  captured by the example (I often get examples that do not trigger the  actual bug!).\end{CompactItemize}
If you send only a (vague) description of a bug, you are usually not very  helpful and will costs me much more time to figure out what you mean.  In the worst-case your bug report may even be completely ignored by me!

My e-mail address: \href{mailto:dimitri@stack.nl}{\tt \href{mailto:dimitri@stack.nl}{\tt dimitri@stack.nl}}

