REFERENCE GUIDE
Dynamic debugging and hypothesis-driven breakpoints
Dynamic analysis observes a concrete execution and tests static hypotheses.
Also known as: gdb reversing
Mechanism
Dynamic analysis observes a concrete execution and tests static hypotheses. Breakpoints should target a question: which bytes are compared, where an index becomes a pointer, or what branch accepts input. Watching every instruction from process entry produces noise and may miss the relevant state transition.
Practical method
Run a minimal known input and stop at a validation landmark. Inspect arguments, memory, and return values. Change one input property and compare the state at the same breakpoint. Use watchpoints when you know an address but not the code writing it.
break main
run
disassemble /r
x/32bx $rsp
info registers
Interpreting evidence
Write down predicted register or memory values before stepping. A mismatch guides the next observation and prevents turning the debugger session into an unstructured search.
Pitfalls and limits
Debugger attachment changes timing and can trigger anti-debug checks. ASLR changes absolute addresses. Hardware watchpoints have size and count constraints; relocated objects can move out of the watched region.