Plan for next LUG meeting: Go over: strace, http://www.wi.leidenuniv.nl/~wichert/strace/ Intercept syscalls, demangles symbols, and shows return code. Advantages: Source code not needed to debug/no debugging symbols need to be present. Very good bug tracking tool. Can profile syscalls, find time spent in each call. Can trace by filtering: -e trace=callname, or trace=network,ipc,signal... Show a simple program. Ltrace, No homepage. Author: Juan Cespedes <email@example.com> Similar to strace allows dynamic library calls to be traced as well. ltrace -S to disp syscalls, kernels syscalls, not lib ones. strace more readable, as it symbolically displays things, but -C option allows similar things. gdb, http://sourceware.cygnus.com/gdb/ Debugger, allows tracing of processes. If debugging symbols present, allows user to view source as it runs, alter variables, change execution, examine variables, and dump assembler. Set breakpoints&watchpoints. One of the most powerful debugging tools if source is available. Lacks memory search capability :( objdump, http://sourceware.cygnus.com/binutils/ Part of binutils. objdump -d, useful to disassemble. nm, http://sourceware.cygnus.com/binutils/ Part of binutils. List symbols from object files, such as libraries. Can list functions, code snippets, etc as well. biew, http://biew.sourceforge.net/ Allows view in: text,binary,hex,dissasm modes. Allows dissassembly mode, virtual/file addresses. ctrl-f1 fr instr sets khexedit, http://home.sol.no/~espensa/khexedit/ Similar to biew, allows viewing in text, binary, hex, oct. Useful as a quick way to hex edit things. Character table, similar to dos/win. Hex/dec/octal convertor. No disasm :( ddd: http://www.gnu.org/software/ddd/ Front end to gdb, very cool. Graphical display of data structures. Ability to graphically see execution of program. Things in procfs, /proc/pid <man proc> cmdline: command line name used to call prog cwd: current working dir environ: current environment variables exe: symlink to binary executable fd: open file descriptors, and links to them maps: descriptions memory mapped regions, and perms. mem: memory used by process, not mmap()-able yet root: current root dir of proc, chroot() to change stat: info about process, reported by ps status: current status ptrace: #include <sys/ptrace.h> Set of tools to trace processes. Used by debuggers and tracers, mostly.