1. gdb attach [pid] -- debug a running process
2. valgrind-- a suite of tools for debugging and profiling programs
Very powerful tool to debug linux program,just for x86 platform
3. strace -trace system calls and signals
In the simplest case strace runs thespecified command until it exits. It intercepts and records the system calls which are called by a process and the signalswhich are received by a process. The name of each system call, itsarguments and its return value are printed on standard error or to the file specifiedwith the -o option.
4. pstack -print a stack trace of a running process
It's often used to check the stack of hungprocess.
5. mtrace, muntrace - malloc debugging
The function mtrace() installs handlers for malloc(), realloc() and free(). The functionmuntrace() disables these handlers.
The environment variable MALLOC_TRACE defines a file where mtrace() writes itsoutput. This file must be writable to the user or mtrace()will do nothing. If the file is not empty it will be truncated.
Usage: call the two function before andafter the code you want to pay attention on.
6. dmesg -print or control the kernel ring buffer
Check the error message of all kind ofprogram, especail for third-party program.
7. binutils-- a tools set
* ld - the GNU linker.
* as - the GNU assembler.
* addr2line - Converts addresses intofilenames and line numbers.
* ar - A utility for creating, modifyingand extracting from archives.
* c+filt - Filter to demangle encoded C+symbols.
* gprof - Displays profiling information.
* nlmconv - Converts object code into anNLM.
* nm - Lists symbols from object files.
* objcopy - Copys and translates objectfiles.
* objdump - Displays information fromobject files.
* ranlib - Generates an index to thecontents of an archive.
* readelf - Displays information from anyELF format object file.
* size - Lists the section sizes of anobject or archive file.
* strings - Lists printable strings fromfiles.
* strip - Discards symbols.
* windres - A compiler for Windows resourcefiles.
8. ldd -print shared library dependencies
9. ld.so, ld-linux.so* - dynamic linker/loader
10.lsof -list open files
Very useful to check if fd leak.
11. netstat - Print network connections, routing tables, interfacestatistics, masquerade connections, and multicast memberships
12. iostat - Report Central Processing Unit (CPU) statisticsand input/output statistics for devices and partitions.
13. vmstat -Report virtual memory statistics
14. time - time a simple command or give resource usage. System time depend on system status, User time is the real time of your program used.