Skip to content

mirimmad/debugger-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

debugger-rs

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.

Features

  • Process control (start, stop, continue)
  • Breakpoint management
  • Memory inspection
  • Register access
  • Source line information
  • Function name resolution
  • Backtrace generation

Usage

cargo run ./test/step

Remeber to run the makefile in the test directory to build the test program.

Demo

Debugger Demo

available commands

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)

About

A simple x86-64 debugger for Linux.

Resources

License

Stars

Watchers

Forks

Languages