Co to jest debuger?

Ukończone

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.