We were still trying to squeeze the maximum out of good old Doxygen in our cloud pipeline when we suddenly encountered a classic problem of harsh enterprise C++: the parser started silently "eating" entire chunks of the codebase.
It all began when we noticed an anomaly: important structures (like BITMAPINFO and RGBQUAD ) had vanished without a trace in the generated documentation.
The scariest part was that the pipeline passed successfully. Doxygen returned exit code 0 , didn't issue a single warning, but the XML output for these files was practically empty. It simply swallowed the code and stayed silent.
Investigation by Binary Search
When a parser is silent, the only way to find the cause is the bisection method. We would take a problematic header file of several thousand lines, delete half of it, run the parser, and see if the necessary structures appeared.
Narrowing the search down to 50 lines, we found the culprit.…