db

A simple x86_64 debugger written with ptrace and Udis86

Rationale

This was an exercise in learning ptrace for an assignment that lead to a curiosity about how modern debuggers trace code.

Features

db supports single-stepping through assembly, disassembling single instructions, reading and writing arbitrary registers, and reading and writing arbitrary memory locations. It also supports intercepting and squashing signals before they reach the traced process.