13
GDB Omówienie z przykładami Maciej Wątroba

GDB Omówienie z przykładami

Embed Size (px)

DESCRIPTION

Maciej Wątroba. GDB Omówienie z przykładami. Czym jest GDB?. „GNU Debugger” Przeznaczony do pracy z m.in. do C oraz C++ Pozwala sprawdzić stan programu w wybranym punkcie wykonania Ułatwia znalezienie przyczyn błędów (np. przepełnienie stosu). Kompilacja. - PowerPoint PPT Presentation

Citation preview

Page 1: GDB Omówienie z przykładami

GDBOmówienie z przykładami

Maciej Wątroba

Page 2: GDB Omówienie z przykładami

Czym jest GDB?

● „GNU Debugger”● Przeznaczony do pracy z m.in. do C oraz C++● Pozwala sprawdzić stan programu w

wybranym punkcie wykonania● Ułatwia znalezienie przyczyn błędów (np.

przepełnienie stosu)

Page 3: GDB Omówienie z przykładami

Kompilacja

Aby dodać wsparcie dla debuggowania kompilujemy z opcją -g– gcc [flagi] -g <source> -o <output>

Na przykład:● gcc -Wall -g prog1.c -o prog1

Page 4: GDB Omówienie z przykładami

Praktyczne wskazówki

(gdb) help [command]● Historia● autodopełnianie

Page 5: GDB Omówienie z przykładami

Uruchamianie

gdb

(gdb) file prog1

Komendą file ładujemy odpowiedni plik

Page 6: GDB Omówienie z przykładami

Uruchamianie c.d.

(gdb) run● Jeśli wszystko jest OK powinien zakończyć się

bez błędów● Jeśli wystąpią jakieś problemy dostaniemy

przydatne informację dotyczące błędu (np. w której linii wystąpił)

Page 7: GDB Omówienie z przykładami

Breakpoints

● Breakpointy służą do zatrzymania programu w określonym miejscu

● (gdb) break file1.c:6● Możemy dodać dowolną ilość breakpointów

Page 8: GDB Omówienie z przykładami

Breakpoints c. d.

● Można również ustawić na fukncji● (gdb) brea my_func

Page 9: GDB Omówienie z przykładami

Co dalej?

● Run …● Przejście do kolejnego breakpointa komendą

continue● (gdb) continue● Przejdść do kolejnej linii kodu komendą step● (gdb) step● Bardzo podobna komenda next

Page 10: GDB Omówienie z przykładami

Aspekty wykonywania

● (gdb) print my_var● (gdb) print/x my_var (w formacie

hexadecymalnym)

Page 11: GDB Omówienie z przykładami

Watchpoints

● Zatrzymanie programu gdy wartość danej zmiennej zostanie zmodyfikowana

● (gdb) watch my_war

Page 12: GDB Omówienie z przykładami

Inne komendy

● backtrace / where● finish – uruchom do końca działania obecnej

funkcji● delete – usuń breakpoint● Info breakpoints – informacje o breakpointach

Page 13: GDB Omówienie z przykładami

Wskaźniki

● Podgląd adresów pamięci● Podglądanie zawartości ● Podgląd struktury