

Building a Debugger • Sy Brand & Tim Misiak
Sep 19, 2025
In this engaging discussion, Sy Brand, a C++ developer advocate at Microsoft and author, shares his expertise on debugger construction. He highlights the complexities of core debugging tasks like stack unwinding and the evolution of debugging tools across platforms. The conversation dives into the challenges of maintaining backward compatibility and the intricacies involved in language design, along with exciting advancements like time travel debugging for non-deterministic issues. Tune in for insights that blend technical depth with practical advice!
AI Snips
Chapters
Books
Transcript
Episode notes
Debugger Development Reveals System Internals
- Implementing a debugger teaches how hardware, OS, and toolchains interact in practice.
- That knowledge helps both systems programmers and developers use debuggers more effectively.
Use Memory Breakpoints To Catch Corruption
- Use memory access breakpoints to find who mutates a memory location.
- Set breakpoints on reads or writes to catch corruptions at the moment they occur.
Stack Unwinding Is Surprisingly Complex
- Real-world stack unwinding is far more complex than frame-pointer walking.
- DWARF encodes a Turing-complete unwinding language that makes unwinding tricky and fascinating.