CScope prints out the global symbols in C programs and helps to navigate around files.
Cxref - C Cross Referencing & Documenting tool is a program that will produce documentation (in LaTeX, HTML, RTF or SGML) including cross-references from C program source code. It has been designed to work with ANSI C, incorporating K&R, and most popular GNU extensions.
Valgrind detects memory errors such as leaks (failing to free memory), use of unitialized memory areas, or writing to unallocated areas of memory in C programs. It runs on Linux and FreeBSD.
Indent can reindent the lines of source code in C programs according to various standards.
Exuberent ctags, distributed with Emacs, helps find the definition of functions and symbols.
etags *.c *.h
lint is a program available on Unix systems which finds
programming errors.
CFunctions makes header files (.h files) from C files.
cfunctions -in *.c
Makeheaders makes header files (.h files) from C files.
Makedepend makes a list of dependencies for a Makefile from your C source code.
makedepend -Y *.c *.h
Cdecl helps to unravel complicated C declarations. There is also a Cdecl online server at this site.
Codepad.org lets you test short C programs on the web, without a compiler.
Ideone lets you test short C programs on the web, without a compiler.
unifdef is a program to remove
preprocessor #ifdef statements from a C source file.
While most of this information is still relevant, note that some of the information is now out of date, particularly the recommendations under "a tool to track down malloc problems" (doesn't mention valgrind) and "a revision control or configuration management tool" (doesn't mention git, mercurial, subversion, etc.).