C/C++ Cross-Reference Tool

As John von Neumann wrote in his letter to Marston Morse, it is hard to understand existing source code.

Code is read more often than written.

An urgent bug, a quick fix in production, and you have to find out quickly what is going on.
Unfortunately, even though you know a great deal about the impacted software, the issue seems to be located in a part you only know superficially. What do you do? You start reading, of course!
Looking for entry points following from the first function call, lost somewhere by a misleading call, usually named like another one leading to the wrong end...
Without semantic analysis it is easy and quick to get lost and choose the wrong path... and time is lost turning around...

You are assigned a new development on some obscure code you don't know. Of course, software is usually developed with covering unit tests, but as it happens this part is not covered... how to quickly assess the impact of your modifications?
Do you still use a grep-like tool to find references?
Do you have an idea of the time spent navigating and understanding before even starting a new feature or fixing a defect?

We, as developers, have been through these situations. That's why we have developed a tool to help us browse our huge code base in order to get:

  • a semantic analysis
  • cross-projects references

It allows us to get a new perspective on our code base and stop losing time when looking for something relevant.
Moreover, our junior developers are using it as a way to acquire knowledge of intricacies in the source code more easily.

Therefore, we find it invaluable for:

  • increasing our source code knowledge
  • increasing our learning speed and knowledge transfer
  • easing the source code reading
  • finding relevant parts of code faster, thereby increasing potential code reuse and consequently leveraging our code base