Debugger – My friend

debbuger

Zanim poszedłem do swojej pierwszej pracy, nikt nie powiedział mi jak korzystać z debuggera:).               


 
 
 
 
 
 

Co to jest debugger?

 

Tematem mojego dzisiejszego wpisu jest podstawowe narzędzie programisty czyli debugger. Służy on do analizy innych programów komputerowych a co za tym idzie możemy śledzić krok po kroku wykonywanie programu i znajdować problemy. W pracy programisty napewno będziesz poprawiał jakieś bugi:). Czyli tester lub klient wyklika jakiś błąd który pojawia się tylko w określonym scenariuszu czyli np otworzyłem aplikację, dodałem coś następnie usunąłem i bang pojawił się błąd w aplikacji. W takiej sytuacji developer stara się odtworzyć scenariusz i kiedy wiadomo już w jakiej sytuacji pojawia się błąd podpina się debuggerem i krok po kroku analizuje co dzieje się w aplikacji, widać wszystko jak na dłoni:). Każdy na pewno coś słyszał o debuggerze może nawet postawił jakiegoś breakpointa. Możliwości jest jednak zdecydowanie więcej. Dzisiaj przejrzymy sobie kilka podstawowych funkcjonalności na podstawie Intellij. W każdym innym IDE zazwyczaj będzie analogicznie z małymi różnicami. Aby rozpocząć debuggowanie musimy zatrzymać program w miejscu które nas interesuje za pomocą pułapki czyli break pointa następnie uruchamiamy aplikację:

 

Call Stack

 

Gdy program zatrzyma się na naszej pułapce zobaczymy mniej więcej coś takiego, oczywiście każdy ma swoje kody:) ale nie o to teraz chodzi.

 

 

Rzucają nam się w oczy dwa taby pierwszy podpisany Threads to call stack – czyli stos wywołań – czyli każdy krok jaki program wykonał do momentu zatrzymania. Aktualne miejsce jest na samej górze. Daje nam to już wiele możliwości o ile w małych programach gdzie wiemy jak wszystko działa możemy pomyśleć, iż jest to proste i taka wiedza nie jest nam potrzebna o tyle w większych projektach jest to wiedza niezbędna. Mamy dostęp do pełnej ścieżki programu a może być ich przecież wiele – zależy od scenariusza.

 

 

Add to Watches

 
Drugi tab to variables gdzie możemy podjerzeć na bieżąco każdą zmienną na której aktulanie pracue nasz program. Możemy dorzuić sobie zmienne które nas interesują i obserwować jak zmieniają się ich wartości wraz z kolejnymi krokami programu. Co więcej sami możemy zmieniać w trakcie debuggowania wartości zmiennych dzięki czemu możemy symulować różne scenariusze.
 

 

Evaluation Expression

 

Do zmiany wartości możemy wykorzystać również opcje evaulate expression skrót alt + F8, aby zmieniać wartości bieżących zmiennych lub nawet dodać nowe kody podczas debuggowania.

 

 

Drop Frame

 

Wyobraźmy sobie, że pracujemy w dużym projekcie i jedno powtórzenie scenariusza zajmuje nam sporo czasu. Chcielibyśmy cofnąć się w debugu i zasymulować inny scenariusz. Oczywiście da się – drop frame. Klikamy prawym przyciskiem na miejsce w call stacku do którego chcemy się cofnąć i wybieramy opcję drop frame. Dzięki ewauluacji zmiennych będziemy mogli zasymulować inny interesujący nas scenariusz.

 

Conditions

 

A wyobraźmy sobie, że debuggujemy pętle w której jest 1000 elementów. Nasz problem powtarza się tylko przy elemencie 556, możemy przechodzić tą pętle manualnie, lecz możemy również ułatwić sobie życie i postawić break pointa z warunkiem. Program zatrzyma się na nim tylko jeżeli warunek będzie spełniony. Na poniższym przykładzie breakpointa zatrzyma aplikację tylko wtedy jeżeli id employera będzie wynośić pięć.
 

 

Jakiś długi wpis się zrobił, są to praktyki stosowane na codzień w pracy programisty, lecz mało kto mówi o nich młodym developerom.

Cześć:)

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *