HomeBlogMagic

Doxygen - Problem Definitionen for Funktionen

Bei mir passiert es häufig, gerad in C, dass einige funktionen eine Makro forangestellt bekommen wie z.B. __declspec(...).

Dies und andere funktionen kann in Doxygen zu problemen führen, denn Doxygen hält diesen Ausdruck für eine neue Funktionsdefintion und schafft es nicht die nachfolgende funktion zu erkennen.

Abhilfe kann man verschaffen in dem man dem Doxygen Preprocessor diese funktionen vordefiniert mit der Config PREDEFINED:

Als beispiel für __declspec und _Requires_lockheld:

PREDEFINED = __declspec(a)=  \
             _Requires_lock_held_(a)= 

Für die genaue Syntax sei auf die Doxygen dokumentation verwießen, diese behandelt das Theme ausführlicher.

Beispiele

Folgende predefines sind nützlich in der Windows Treiberentwicklung:

PREDEFINED             = __declspec(a)= \
                         _Requires_lock_held_(a)= \
                         _Dispatch_type_(a)= \
                         _Function_class_(a)=

Troubleshooting

Wenn doxygen die Einstellung ignoriert, dann bitte überprüfen ob folgende Werte in der Config auf YES stehen:

  • MACRO_EXPANSION
  • ENABLE_PREPROCESSING
Permalink: https://adirmeier.de/Blog/ID_200
Tags: Blog, C/C++, doxygen, Linux, Windowsvon am 2018-06-01