Code Spelunking

Articles

Code Spelunking: Exploring Cavernous Code Bases

Tools

cscope

global

Code Query

cflow/dot

Flawfinder

RATS

what.py

ktrace

DTrace

Public Cross References

FreeBSD and Linux

FAQ

Q: Where did the term Code Spelunking come from?

A: Spelunk is an English verb that means to go exploring, usually in a cave.

Q: Why did you start codespelunking.org?

A: I wanted to create a place where people could come to find out about tools and techniques for exploring, fixing and extending large pieces of software.

Q: Wouldn't better software processes make code spelunking unnecessary?

A: If people and organizations were perfect it would still be necessary to have these tools. Software simply grows too large over time for someone new to a project to understand it without the help of good tools.

Q: Why don't you list commercial software in the tools section?

A: There are several reasons:

  1. There are already excellent Open Source tools for code spelunking.

  2. Since the tools themselves are often large programs they can be easily tested on themselves to see just how useful they are.

  3. I have a personal commitment to Open Source software.