A simple toy debugger implementation for x86-64 Linux in Rust. This basic debugger can control program execution, set breakpoints, inspect memory and registers, and analyze debug information.
- Process control (start, stop, continue)
- Breakpoint management
- Memory inspection
- Register access
- Source line information
- Function name resolution
- Backtrace generation
Remeber to run the makefile in the test directory to build the test program.
The debugger supports command prefixes, so you can use shortened versions of commands. For example, 'b' instead of 'breakpoint', 'c' for 'continue', or 'i b' for 'info breakpoints'.
Full command list:
quit (q)
continue (c)
breakpoint (b) 0xABCD
breakpoint (b) func
breakpoint (b) file.c:1
register (r) dump
register (r) read rax
register (r) write rax 0x1234
info (i) breakpoints
read 0xABCD
step (s)
next (n)
finish (f)
stepi
symbol (sym) NAME
backtrace (ba)
quit (q)