Co to jest debuger?
Podczas pracy jako deweloper zawsze dochodzisz do tego momentu, gdy zadajesz sobie pytanie:
Dlaczego mój kod nie działa?
Zdarza się to każdemu deweloperowi. Sztuczka polega na tym, aby znaleźć wygodny sposób wyszukiwania i naprawiania błędów — jak najszybszy i jak najmniej stresujący. Gdy w programie występuje usterka, każdy zwykle ma swój własny sposób radzenia sobie z tym problemem.
Prawdopodobnie próbowano już samodzielnie wykonać co najmniej jedną z tych metod debugowania:
- Uruchomienie programu jeszcze raz, ponieważ powinien działać.
- Wyjaśnienie problemu gumowej kaczce.
- Przeczytanie kodu jeszcze raz w celu znalezienia problemu.
- Spacer na świeżym powietrzu.
- Napisanie kilku komunikatów
Console.WriteLine("here")
typu spam w swoim kodzie.
Te metody mogły w takim, czy innym stopniu okazać się przydatne. Istnieje jednak jedno podejście, które jest najczęściej uznawane za skuteczne: użycie debugera. Ale co to jest debuger, dokładnie?
Debuger to narzędzie programowe, którego można użyć do obserwowania i kontrolowania przepływu wykonywania programu za pomocą podejścia analitycznego. Celem debugera jest ułatwienie znalezienia głównej przyczyny błędu i pomoc w jego rozwiązaniu. Działa on przez hostowanie programu we własnym procesie wykonywania lub przez uruchomienie jako oddzielnego procesu dołączonego do działającego programu, tak jak w przypadku środowiska .NET.
Debugery są dostępne w różnych wersjach. Niektóre działają bezpośrednio z wiersza polecenia, podczas gdy inne są wyposażone w graficzny interfejs użytkownika. W tym module użyjemy zintegrowanego debugera graficznego programu Visual Studio Code.
Dlaczego warto używać debugera
Jeśli nie uruchamiasz kodu za pośrednictwem debugera, prawdopodobnie zgadujesz, co dzieje się w programie. Główną zaletą korzystania z debugera jest to, że można obserwować działanie uruchomionego programu. Możesz śledzić wykonywanie programu po jednym wierszu kodu naraz. W ten sposób unikniesz prawdopodobieństwa błędnego odgadnięcia.
Każdy debuger ma swój własny zestaw funkcji. Dwie najważniejsze, które ma niemal każdy z nich, są następujące:
- Kontrolowanie wykonywania programu: możesz wstrzymać program i uruchomić go krok po kroku, co pozwala zobaczyć, który kod jest wykonywany i jak wpływa na stan programu.
- Obserwowanie stanu programu: na przykład możesz sprawdzić wartość zmiennych i parametrów funkcji w dowolnym momencie podczas wykonywania kodu.
Sprawne posługiwanie się debugerem jest ważną umiejętnością dewelopera, która często jest zaniedbywana. Dzięki temu można wydajniej wyszukiwać błędy w kodzie i szybko zrozumieć, jak działa program.
Omówimy ją podczas kolejnej lekcji.