Toolverse
All skills

rr-debugger

by gadievron

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.

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Author
gadievron
Category
Backend
Views
4

About this skill

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.

How to use

  1. Zainstaluj rr na swoim systemie (dostępne w większości menedżerów pakietów Linux). Umiejętność rr-debugger wymaga dostępu do narzędzia rr oraz gdb.

  2. Nagrywaj uruchomienie programu poleceniem rr record, podając ścieżkę do programu i jego argumenty. Na przykład: rr record ./moj_program arg1 arg2. rr zapisze wszystkie zdarzenia systemowe i stany pamięci potrzebne do deterministycznego odtworzenia.

  3. Odtwórz nagranie poleceniem rr replay. Otworzy się interfejs gdb z dostępem do poleceń odtwarzania wstecz. Możesz teraz poruszać się zarówno do przodu, jak i do tyłu w historii wykonania.

  4. Aby znaleźć źródło awarii, użyj reverse-continue (lub rc) aby wrócić do poprzedniego punktu przerwania, lub reverse-next (rn) aby cofnąć się o jeden krok nad wywołaniami funkcji. Jeśli potrzebujesz wejść wewnątrz funkcji wstecz, użyj reverse-step (rs).

  5. Po zlokalizowaniu interesującego cię obszaru kodu, przejdź do przodu za pomocą standardowych poleceń next i step, obserwując zmienne za pomocą print, info locals lub info args. Możesz też badać pamięć poleceniem x z odpowiednim formatem.

  6. W przypadku błędów ASAN wyświetl stos (bt), przejdź do ostatniej ramki aplikacji (up), ustaw punkt przerwania na tej lokalizacji (break *$pc), a następnie użyj reverse-continue aby wrócić do instrukcji, która spowodowała błąd. Następnie przejdź do przodu, aby zobaczyć sekwencję zdarzeń prowadzącą do naruszenia.

Related skills