Are there any good tools out there designed for navigating large code bases? I'm thinking something that can generate class and caller/callee diagrams... Thanks!
Depends on the language of the codebase, but there are various tools that can help you, like doxygen if things are setup well.<p>My two cents, I always do a manual mapping for the modules and key classes, even in large code bases because it forces me to learn the codebase and create documentation at the same time. I do this by literally starting at main() and tracing the code to what is called first etc. So when I am done I have a high level overview of the path through the code and what modules are what and what they do.<p>Usually takes a few days to do a larger code base, largest one took me 2 weeks. It isn't the most fun work, but it lets you build documentation to save yourself and others later too.
My experience is that debugging is more effective than looking at static code. To find callers, I set break points. Other than that, grep, opengrok, doxygen or a decent ide are good helpers.