These have both been useful to me on projects when I have been trying to get my head around reams of grungy C code (you know the type, where the programmer continually felt the need to use *(p + i) instead of p[i] “because it is more efficient”).
doxygen, http://www.stack.nl/~dimitri/doxygen/
Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.
cscope, http://cscope.sourceforge.net/
Cscope is a developer’s tool for browsing source code. It has an impeccable Unix pedigree, having been originally developed at Bell Labs back in the days of the PDP-11. Cscope was part of the official AT&T Unix distribution for many years, and has been used to manage projects involving 20 million lines of code!
To a degree, modern IDEs can help in the problem spaces addressed by both these tools; sadly, one just can’t rely on always having a modern IDE available, however.
