Upload
felicia-reilly
View
27
Download
1
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
GDBOmówienie z przykładami
Maciej Wątroba
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
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
Praktyczne wskazówki
(gdb) help [command]● Historia● autodopełnianie
Uruchamianie
gdb
(gdb) file prog1
Komendą file ładujemy odpowiedni plik
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ł)
Breakpoints
● Breakpointy służą do zatrzymania programu w określonym miejscu
● (gdb) break file1.c:6● Możemy dodać dowolną ilość breakpointów
Breakpoints c. d.
● Można również ustawić na fukncji● (gdb) brea my_func
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
Aspekty wykonywania
● (gdb) print my_var● (gdb) print/x my_var (w formacie
hexadecymalnym)
Watchpoints
● Zatrzymanie programu gdy wartość danej zmiennej zostanie zmodyfikowana
● (gdb) watch my_war
Inne komendy
● backtrace / where● finish – uruchom do końca działania obecnej
funkcji● delete – usuń breakpoint● Info breakpoints – informacje o breakpointach
Wskaźniki
● Podgląd adresów pamięci● Podglądanie zawartości ● Podgląd struktury