-
Notifications
You must be signed in to change notification settings - Fork 0
6. Debugger
Debugger jest programem komputerowym pozwalającym na analizę działania innych programów w czasie rzeczywistym. Pomaga to w identyfikacji popełnionych błędów, czyli w żargonie informatycznym bugów
(z angielskiego robaków). Proces ten kierowany za pomocą debugera nazywamy debugowaniem.
Podstawowym zadaniem debuggera jest sprawowanie kontroli nad wykonaniem kodu, co umożliwia zlokalizowanie instrukcji odpowiedzialnych za wadliwe działanie programu. Współczesne debuggery pozwalają na efektywne śledzenie wartości poszczególnych zmiennych, wykonywanie instrukcji krok po kroku czy wstrzymywanie działania programu w określonych miejscach. Debugger jest standardowym wyposażeniem większości współczesnych środowisk programistycznych.
Należy pamiętać jednak o tym, że symulacja działania kodu nie jest idealnym odtworzeniem wykonania tego kodu w warunkach naturalnych. Wobec tego debuggery mogą nie wykrywać bugów niezależnych bezpośrednio od treści badanego programu.
Aby zacząć korzystać z debuggera w środowisku CodeBlocks musimy go najpierw skonfigurować. W tym celu w zakładce Project przechodzimy do opcji Build options...
Następnie w karcie Compilers settings szukamy opcji Produce debugging symbols [-g] i ją zaznaczamy (klikamy w kwadracik).
Zwróć uwagę na to, że opcja Strip all symbols from binary [-s] nie powinna być zaznaczona.
Musimy jeszcze ustawić cel kompilacji Build >> Select target >> Debug
I voila! Można już korzystać z dobrodziejstw debuggera.
Aby zatrzymać wykonanie kodu w określonej linijce kodu musimy postawić przy niej tak zwanego breakpointa (punktu wstrzymania). W tym celu wystarczy, że naciśniemy klawisz F5 trzymając kursor w linii kodu, w której chcemy taki punkt umieścić lub klikając Debug >> Toggle breakpoint.
Po poprawnym wykonaniu tej operacji powinniśmy zobaczyć czerwoną kropkę (breakpoint) w pożądanym przez nas miejscu, na poniższym screenie jest to ósma linijka kodu.
Teraz wystarczy uruchomić program. Można to zrobić klikając Debug >> Start lub klawisz F8.
Kod wykona się do wskazanego miejsca i będzie czekał na dalszą akcję programisty. W tym czasie można podejrzeć, jakie wartości na ten moment wykonywania się programu przyjmują wszystkie zadeklarowane do tej pory zmienne. Tego typu informacje zawiera okno Watches.
Inne okna debuggera zawierają różne informacje o wykonywanym programie, należy ich szukać pod listą Debug >> Debugging windows.
W celu wykonania następnych wierszy programu wykonamy polecenie Debugg >> Next line (lub wciskamy klawisz F7). W obserwowanym przykładzie po osiągnięciu linii 12 program oczekuje na podanie danych (funkcja scanf()
). Podobnie sytuacja będzie wyglądać w liniach 14 i 16. Wartości zmiennych na bieżąco możemy sprawdzić w oknie Watches. Takie śledzenie kodu często pozwala na wychwycenie popełnionych błędów.