Saturday, February 20, 2010

"Reverse Engineering" in different programming languages?

A lot of engineers in one point of another needs to look through usually undocumented open source code, in order to modify/implement additional features. Using editor for bigger projects built in C/C++ (without OOP) can be unbelievably painful (my own experience). Two software that helped me a lot to reverse engineer my any source code are:

1) Doxygen: Creates nice documentation of all the functions in the project. It gives links to definition of each function, but more interesting is also can create call/caller graphs (for each function it gives graph of functions which it calls, and another graph of the function which call that function).
It is completely a freeware, and the graphs are done using the dot program.

2) Understand: the free trial version of this application (14 days) is very handy, and is a bit more powerful comparing to Doxygen.