Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Deterministic debugging with rr record-replay. Use when debugging crashes, ASAN faults, or when reverse execution is needed. Provides reverse-next, reverse-step, reverse-continue commands and crash trace extraction.
.claude/skills/gadievron-rr-debugger/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -24% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -38% | 0% |
| case-03 | ✓→✓ | = Same ✓ | -23% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 18% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 8% | 0% |
rr provides deterministic record-replay debugging with full reverse execution capabilities.
rr record <program> [args]rr replay (enters gdb interface with reverse execution)All standard gdb commands work, plus reverse variants:
reverse-next / rn: Step back over function callsreverse-step / rs: Step back into functionsreverse-continue / rc: Continue backward to previous breakpointreverse-stepi / rsi: Step back one instructionreverse-nexti / rni: Step back over one instructionAfter rr record <crashing-program>:
bashrr replay # In gdb: reverse-next 100 # Go back 100 steps (adjust N as needed) # Now step forward to see execution leading to crash: next next ...
After rr record <asan-program>:
bashrr replay # In gdb: bt # View stack trace up # Issue "up" commands until last app frame (before ASAN runtime) break *$pc # Set breakpoint at that location reverse-continue # Go back to last app instruction before ASAN # Now step forward to see execution leading to fault: next next ...
Standard gdb commands work at any point:
print <var>: Print variable valueprint *<ptr>: Dereference pointerx/<format> <address>: Examine memoryx/10xb <addr>: 10 bytes in hexx/s <addr>: String at addressinfo locals: Show local variablesinfo args: Show function argumentslist: Show source code around current locationdisassemble: Show assembly around current locationlayout src: TUI source viewlayout asm: TUI assembly viewset disassemble-next-line on: Show assembly with each stepUse scripts/crash_trace.py to automatically extract execution trace before crash.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 13,124 | 6,414 | -51% | 1 | 1 | 0% | 2,312 | 1,758 | -24% | 0 | 0 | — |
case-02 | fail→pass | 13,232 | 5,099 | -61% | 1 | 1 | 0% | 2,666 | 1,646 | -38% | 0 | 0 | — |
case-03 | pass→pass | 13,820 | 7,093 | -49% | 1 | 1 | 0% | 2,486 | 1,905 | -23% | 0 | 0 | — |
case-04 | pass→pass | 4,030 | 2,177 | -46% | 1 | 1 | 0% | 733 | 867 | +18% | 0 | 0 | — |
case-05 | pass→pass | 8,738 | 6,326 | -28% | 1 | 1 | 0% | 1,553 | 1,677 | +8% | 0 | 0 | — |
case-06 | pass→pass | 6,340 | 1,636 | -74% | 1 | 1 | 0% | 989 | 764 | -23% | 0 | 0 | — |
case-07 | pass→pass | 4,083 | 6,669 | +63% | 1 | 1 | 0% | 693 | 923 | +33% | 0 | 0 | — |
case-08 | pass→pass | 10,335 | 2,701 | -74% | 1 | 1 | 0% | 1,705 | 938 | -45% | 0 | 0 | — |
case-09 | pass→pass | 2,205 | 2,584 | +17% | 1 | 1 | 0% | 332 | 900 | +171% | 0 | 0 | — |
case-10 | pass→pass | 4,980 | 2,307 | -54% | 1 | 1 | 0% | 995 | 922 | -7% | 0 | 0 | — |
case-11 | pass→pass | 6,255 | 1,882 | -70% | 1 | 1 | 0% | 1,067 | 813 | -24% | 0 | 0 | — |
case-12 | pass→pass | 9,802 | 3,101 | -68% | 1 | 1 | 0% | 1,775 | 1,028 | -42% | 0 | 0 | — |
case-13 | pass→pass | 11,913 | 3,275 | -73% | 1 | 1 | 0% | 2,053 | 1,055 | -49% | 0 | 0 | — |
case-14 | pass→pass | 8,554 | 4,237 | -50% | 1 | 1 | 0% | 1,572 | 1,283 | -18% | 0 | 0 | — |
case-15 | pass→pass | 10,888 | 1,346 | -88% | 1 | 1 | 0% | 872 | 741 | -15% | 0 | 0 | — |
case-16 | pass→pass | 5,705 | 1,724 | -70% | 1 | 1 | 0% | 812 | 733 | -10% | 0 | 0 | — |
case-17 | pass→pass | 3,845 | 1,402 | -64% | 1 | 1 | 0% | 598 | 735 | +23% | 0 | 0 | — |
case-18 | pass→pass | 6,112 | 2,092 | -66% | 1 | 1 | 0% | 1,104 | 851 | -23% | 0 | 0 | — |
case-19 | pass→pass | 1,993 | 1,995 | +0% | 1 | 1 | 0% | 379 | 767 | +102% | 0 | 0 | — |
case-20 | pass→pass | 15,105 | 9,189 | -39% | 1 | 1 | 0% | 2,457 | 2,075 | -16% | 0 | 0 | — |
case-21 | pass→pass | 11,690 | 7,790 | -33% | 1 | 1 | 0% | 1,918 | 1,943 | +1% | 0 | 0 | — |
case-22 | pass→pass | 4,340 | 3,405 | -22% | 1 | 1 | 0% | 747 | 1,172 | +57% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.