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 uninitialized 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
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.
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
#ifdef statements from a C source file. See
also unifdef - selectively remove C preprocessor conditionals.
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.).