Writing a Linux Debugger (2017)
Published on: 2025-08-08 22:39:32
This series has been expanded into a book! It covers many more topics in much greater detail. You can now pre-order Building a Debugger.
Debuggers are one of the most valuable tools in any developer’s kit. However, although these tools are in such widespread use, there aren’t a lot of resources which tell you how they work and how to write one, especially when compared to other toolchain technologies like compilers. In this post series we’ll learn what makes debuggers tick and write one for debugging Linux programs.
This tutorial is split into 10 parts and you can find the final code, along with branches for each part, on GitHub.
If you’re on Windows, you can still follow along using WSL.
Our debugger will support the following features:
Launch, halt, and continue execution
Set breakpoints on Memory addresses Source code lines Function entry
Read and write registers and memory
Single stepping Instruction Step in Step out Step over
Print current source location
Print backtrace
... Read full article.