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 <cespedes@debian.org>
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.