Software debugging tools
Another info gather post, this time about misc. debugging and reverse engineering software tools (debuggers, tracers, call loggers, network sniffers etc.) Just a messy (and unfinished) list for now (may be updated later…)
Software debugging tools
U-xs (GNU/Linux, *BSD, …):
gdb
,ddd
pstack
strace, ktrace, ltrace, ftrace, latrace, mutextrace, xtrace, etrace
- LTT (Linux Trace Toolkit) / LTTng:
trace
,traceview
- truss, sotruss
- gprof (call graph profile data)
valgrind
- dtrace
- systemtap
- dprobes, kprobes
- perf-tools (kprobe, io/open/execsnoop, functrace, …)
- ptrace, python-ptrace
- cheat engine (for games but not only…)
- debugfs
- kdump
- gcore (dumping process mem / core)
- DynamoRio
- Flawfinder
- cppcheck
ld
/ldd
LD_PRELOAD
LD_BIND_NOW
(and -Wl, -znow) - resolve functions on load (not on the 1st call/lazy way)ldd
andLD_DEBUG
Windows:
- sysinternals tools: filemon, process explorer, …
- SoftICE (DOS, Win31, 95, .. , XP)
- OllyDbg
- x64dbg
Java:
Network monitoring
tcpdump
wireshark
Disassemblers, hex editors, analysers
- IDA (Interactive disassembler) (and IDA Pro - commercial…)
- Biew / Beye (u-x), Hiew (DOS / Windows)
- ht
Decompilers
Other bin utils
objdump
nm
elfedit
strip
- c++filt
On-line tools
Links
Related talks:
- The Journey of a source line: how your code is translated into a controlled flow of electrons
- The bits between the bits: How we get to main()
- C/C++ startup code, linking, symbol resolution, debugging