This repository contains the source code for the book Building a Debugger.
If you ordered the Early Access version of the book and want to update your code to the current version, see the Early Access Upgrade Guide.
- Chapter 1: Project Setup
- Chapter 2: Compilation and Computer Architecture (no code)
- Chapter 3: Attaching to a Process
- Chapter 4: Pipes, procfs, and Automated Testing
- Chapter 5: Registers
- Chapter 6: Testing Registers with x64 Assembly
- Chapter 7: Software Breakpoints
- Chapter 8: Memory and Disassembly
- Chapter 9: Hardware Breakpoints and Watchpoints
- Chapter 10: Signals and Syscalls
- Chapter 11: Object Files
- Chapter 12: Debug Information
- Chapter 13: Line Tables
- Chapter 14: Source-Level Breakpoints and Stepping
- Chapter 15: Call Frame Information
- Chapter 16: Stack Unwinding
- Chapter 17: Shared Libraries
- Chapter 18: Multithreading
- Chapter 19: DWARF Expressions
- Chapter 20: Variables and Types
- Chapter 21: Expression Evaluation
Your codebase here: I'd love to feature implementations of the book written by you, especially if they're in a language other than C++. If you'd like to have your implementation featured here, please create an issue.