rr-debugger

Record and replay native application crashes with rr reverse-execution debugging.

3.5k|556|Updated Oct 17, 2025
One-click install
npx skills add https://github.com/gadievron/raptor --skill rr-debugger
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: rr-debugger
Source: https://github.com/gadievron/raptor/tree/main/.claude/skills/crash-analysis/rr-debugger
Command: npx skills add https://github.com/gadievron/raptor --skill rr-debugger

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

This Skill enables deterministic debugging of crashes and ASAN faults by using rr's record-replay capabilities and reverse execution to observe, step back, and trace the sequence leading to failures.

Core Features & Use Cases

  • Deterministic, reverse-execution debugging with rr, including reverse-next, reverse-step, and reverse-continue.
  • Crash trace extraction and state inspection across records to identify root causes.
  • Works for regular crashes and ASAN faults, with easy workflow from recording to replaying and tracing.

Quick Start

Use rr to record a crashing program: rr record <program> [args], then replay the recording with rr replay and navigate backward in time using reverse-next, reverse-step, and reverse-continue to identify the fault. When ready, run the included automation script to extract an execution trace: python3 scripts/crash_trace.py

Frequently Asked Questions about rr-debugger

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug crashes deterministically using record-replay?

Record-replay debugging captures a program's execution deterministically with rr record, then replay it with rr replay to step backward through crashes using reverse-next, reverse-step, and reverse-continue, letting you inspect state at any point leading to failure.

Can I use rr to debug ASAN faults?

Yes, rr works with ASAN faults. Record the crashing program with rr record, replay with rr replay, and navigate backward to identify the memory safety violation and trace execution back to its root cause.

What's the workflow for extracting crash traces with rr and gdb?

Record with rr record, replay with rr replay to navigate the crash, then run the included crash_trace.py script to automate trace extraction and state inspection across the recording, identifying the sequence leading to failure.

Do I need gdb to use reverse-execution debugging with rr?

Yes, rr requires gdb on the host system. The record-replay engine captures deterministic execution, and gdb provides the reverse-execution commands (reverse-next, reverse-step, reverse-continue) to step backward through the trace.

When should I use record-replay debugging instead of live debugging?

Use record-replay when crashes are intermittent or timing-dependent; rr captures deterministic execution so you replay and inspect the exact same sequence repeatedly, making Heisenbugs reproducible and analyzable.

What's the difference between reverse-step and reverse-continue in rr?

Reverse-step moves back one source line at a time within the current function; reverse-continue jumps back to the previous function call or breakpoint, letting you navigate backward at different granularities to isolate the fault.