document updated 20 years ago, on Jun 9, 2006
Source Files
ctags - generate an index of the objects found in a source file
cscope - browse source code, search, find definitions, calls to a function, etc...
gcc -E - Print the output of the preprocessor
ld --cref - Print a cross-reference table (function x gets called by function y and z, ...)
Binaries
ldd - list dynamic dependencies of executable files or shared objects
nm/dump - print an object's internal and/or external symbol table
elf file format documentation
Runtime
debuggers:
gdb
ddd
profilers:
prof
gprof
tprof (uses trace)
system call tracers:
truss (via procfs) [Solaris,FreeBSD]
ktrace [BSD]
strace, [Linux]
ktruss, [NetBSD]
trace [AIX]
system/user call interceptors:
LD_PRELOAD
PLT, sys_call_table[]
Linux Kernel Hooker
user function call tracers:
Visible Workings page, brian marick, CMU
truss -u a.out -u ld:: -u :: ...
gcore - get core images of running processes
proc tools (solaris) - get information on a process while it's running
pflags - ...
pcred - ...
pmap - print address space map of a process
pldd - print dynamic libraries linked in to a process
psig - list signal actions of a process
pstack - print the stack trace
pfiles - print open files
pwdx - print working directories
pstop/prun - stop/start a process
pwait - wait for the specified processes to terminate
ptree - print a process tree... print the ppid, the pppid, ppppid, etc...
ptime - similar to time(1) command
fuser - show which processes have a specific file/directory/device open