Uruchamiamy debuggowanie aplikacji za pomocą servera gdb:

gdbserver localhost:1337 ./prog

Gdy gdbserver działa w tle uruchamiamy radare2:

r2 -e dbg.exe.path=./prog -d gdb://localhost:1337

Radare2 wczytuje symbole ze wskazanego pliku i łączy się z rzeczywiście uruchomionym procesem debuggowanego programu za pośrednictwem gdbservera.

Następnie standardowe działania w radare2, czyli na początek analiza kodu:

aaa

Od tego momentu polecenie ‘?’ jest przyjacielem :)

Sprawdzamy informacje o pliku, symbolach, zawartości itd:

i
i?
ia
ie
il
iM
is
iSS
izz

Można obejrzeć funkcje:

pdf@sym.main
pdf@sym.test

Można zrobić diagramy reprezentujące strukturę programu:

agCd > /tmp/foo.gv

Taki plik da się na przykład obejrzeć narzędziem xdot:

xdot /tmp/foo.gv

Znając powyższe można ustawiać breakpointy:

db sym.main
db sym.test

Podgląd rejestrów:

dr
drc
drr
dr?rip

Wykonywanie programu:

dcb
dcc
ds
dso

Przejście do trybu wizualnego:

V

Od tego momentu wygląda to trochę inaczej. Program odpowiada na pojedyncze przyciski, na przykład: zmiana widoku, step-in, step i wyjście:

p
V
p
V
V
q
q
p
p
s
S
q

Po oknie podglądu kodu da się wędrować klawiszami ikjl a breakpoint ustawić można za pomocą B.

Gdy znudzą się lub zmęczą kolory można je szybko zmienić za pomocą R.

Można tymczasowo wrócić do trybu komend, jak w vi - dwukropkiem. Enter w pustej linii wraca do trybu wizualnego.

STDOUT debuggowanego procesu jest tam, gdzie jest on uruchomiony pod kontrolą gdbserver.