Skip to content

aycyang/toy-debugger

Repository files navigation

(WIP) Toy Debugger

To-do

  • read characters into line buffer
  • re-integrate with command system
  • poc render text in boxes
  • show disassembly in a box
  • parse line into tokens
  • command line interface
  • breakpoint states: inactive/active (not user-controlled), enabled/disabled (user-controlled)
    • enabled+active means the tracee will stop when the breakpoint is reached
    • enabled+inactive means the tracee has hit the breakpoint and is currently stopped, and can hit the breakpoint again
    • disabled+(anything) means the tracee will not stop when the breakpoint is reached
  • as soon as tracee hits a breakpoint, we make the breakpoint inactive (temporarily) and rewind the instruction pointer
  • to continue, we single step, make the breakpoint active, put the int3 instruction back in if needed, then continue
  • link zydis
  • implement ncurses ui

Long-term goals

  • Snapshot and restore a Linux process
  • Attach to running processes and set breakpoints on them

Reading material

About

A Linux x64 debugger from scratch

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published