See how a debugger sets breakpoints and generates stack traces. The pdf version of this slide deck doesn't show the animations, so you might prefer to watch the video of this presentation at dotGo EU: https://youtu.be/TBrv17QyUE0
2 @lizrice ptrace The ptrace() system call provides a means by which one process (the "tracer") may observe and control the execution of another process (the "tracee"), and examine and change the tracee's memory and registers. It is primarily used to implement breakpoint debugging and system call tracing.
8 @lizrice address to return to parameters & return values local variables CPU Registers Base Pointer address to return to Stack Pointer Program Counter Program Counter Base Pointer Call Stack Previous stack frame Previous stack frame address to return to parameters & return values
Copyright @ 2017 Aqua Security Software Ltd. All Rights Reserved. github.com/lizrice/debugger-from-scratch with thanks to @mlowicki & @philpearl @lizrice