Skip to content
Jaroslaw Piszczala edited this page May 16, 2019 · 3 revisions

GDB - GNU Project Debugger

Komendy

Komendy w GDB można używać w wersjach skróconych co na tym krótkim spisie oznaczono pogrubieniem.

Komendy podstawowe

  • run
  • break - Ustawia tzw. breakpoint w wybranym miejscu. Wykorzystuje do tego nr lini, etykiete bądź nazwe funkcji.
  • clear - Usuwa poprzednio założony breakpoint
  • step - Robi kolejny krok przechodząc do następnej linii
  • continue - Wznawia działanie programu

Komendy do wyświetlanie informacjii

  • print $reg - wyświetla wartość spod rejestru %reg. Wartość można formatować, do tego celu należy skorzystać z komendy print/f, gdzie f jest znakiem formatu (o - oct, d - dec, x - hex, c - char, f - float, t - binary)
  • display $reg - wyświetla wartość spod rejestru przy każdym breakpointcie
  • info reg - Informacje o wszystkich rejestrach
  • info breakpoints - Informacje o wszystkich ustawionych breakpointach

Uruchamianie GDB z predefiniowanymi funkcjami

Jeżeli co chwilę uruchamiacie GDB ustawiając te same breakpointy, bądź sprawdzacie ciągle te same informacje, to możecie to zautomatyzować uruchamiając narzędzie gdb z listą komend za pomocą

gdb -x gdb_command_list executable_program

Komendy wpisane bezpośrednio w pliku zostaną uruchomione automatycznie

b 10
b 64 if $esi>2

Można także definiować własne funkcje. Dla przykładu posłużą mi dwie funkcje. Pierwsza z nich io wyświetla pierwsze 10 wartości buforów in oraz out, druga krok wykonuje krok i wyświetla wartości rejestrów %eax oraz %ebx

def io
 x /10cb &in
 x /10cb &out
end

def krok
 s
 print $eax
 print $ebx
end

Literatura

Clone this wiki locally