I am interested in:<p>"Given a large source code (say in C), how can I most efficiently figure out how it works?" The best I have so far is emacs/vim + gdb, which has been around for > 1 decade.<p>Intutively, it seems like there should be tools that can help me better visualizae what's going on inside the code.<p>The closest I can think of is: doxygen that can generate pretty graphs using AT&T's dot for function call graphs; ... but I hope something more can be done.<p>[Slightly OT: when I first came across Valgrind, it changed the way I debugged memory errors because it can pinpoint to me exactly the line number and the stack state when I wrote to unallocated space or read in an uninitialized value]<p>I'm hoping to find a similar tool for understanding large source code bases.