Welcome to the REference Debugger (RED).

This page is dedicated to debugger technology.

Surprisingly, there is not much information on the Internet on the internal working of debuggers, so I decided to share my knowledge about the subject in these pages.

If you are curious about how debuggers work, or you want to write your own debugger, here you will find information, algorithms, and a reference debugger implementation from which you can derive your own debugger.

You may wonder who needs another debugger when gdb is already available for many different platforms and processors. The problem is that gdb is so big and its code has evolved over the years that it has become difficult to understand for people who are not already familiar with debugger technology.

The goal of the RED project is to keep the architecture simple and understandable, so that people can learn from it, and possibly extend it.

Part of the material on this site is based on ideas from the book "How debuggers work". I consider the book a good introductory text on debuggers. However, I feel it tries to be independent of a particular architecture, so it does not go into enough detail to allow a developer to solve the most difficult problems when implementing a new debugger.

Use the menu at the left to navigate through the site. You probably want to visit the architecture page first to familiarize yourself with the different components of a debugger, and then go deeper and focus on the components that most interest you.

Good learning.

© 2007 Giampiero Caprino, Backer Street Software