Pewnie powinienem zacząć od tego w jaki sposób uruchamiać aplikację w trybie debug, ale żeby na samym początku nikogo nie zanudzić i jednocześnie, żeby nie było za trudno zacznijmy może od przeglądu dostępnych w Eclipsie typów
punktów wstrzymań (ang.
breakepoints).
Podczas debugowania możemy korzystać z:
- punktów wstrzymań linii
- punktów wstrzymań metod
- punktów wstrzymań pól
- punktów wstrzymań klasy
- punktów wstrzymań wyjątków
Punkty wstrzymań linii
Jest to chyba najpopularniejszy rodzaj punktów wstrzymań, sam kiedyś korzystałem jedynie z nich, dlatego też nie ma chyba potrzeby, żeby wchodzić w szczegóły. Takie punkty wstrzymań ustawiamy (klikając na lewym bocznym pasku edytora przy odpowiedniej linii) jeśli chcemy, aby wykonywanie naszego programu zatrzymało się na konkretnej linii.
Punkty wstrzymań metod
Czasami może nas interesować sytuacja, kiedy program wchodzi i/lub wychodzi z jakiejś metody, wówczas przydatne stają się punkty wstrzymań metod. Punkty takie ustawiamy klikając na lewym bocznym pasku edytora przy linii z rozpoczęciem definicji metody
We właściwościach (klikamy prawym przyciskiem na ikonce punkty wstrzymań i wybieramy Breakpoints Properties) takich punktów wstrzymań możemy określić czy program ma się zatrzymać na wejściu i/lub wyjściu z metody:
Punkty wstrzymań pól
Jeśli zależy nam na zatrzymaniu wykonywania programu, gdy określone pole klasy jest wykorzystywane (odczytywane i/lub modyfikowane) to możemy wykorzystać punkty wstrzymań pól.
Tutaj również właściwości pozwalają nam dostosować zachowanie punktu wstrzymań do naszych potrzeb - możemy wybrać, czy ma on być aktywny przy odczycie i/lub modyfikacji danego pola:
Punkty wstrzymań klas
Tego rodzaju punktu wstrzymań możemy wykorzystać, gdy interesuje nas moment, w którym dana klasa jest po raz pierwszy ładowana przez maszynę wirtualną.
Punkty wstrzymań wyjątków
A co jeżeli w naszej aplikacji rzucany jest jakiś wyjątek i ciężko jest nam znaleźć miejsce i przyczynę takiej sytuacji? Wystarczy wtedy użyć punktów wstrzymań wyjątków. Wyjątki takie ustawia się w widoku Breakpoints (Window->Show View->Other->Debug->Breakpoints) - wybieramy opcję Add Java Exception Breakpoint:
i w nowym oknie wybieramy wyjątek, na który chcemy reagować:
Dodatkowo we właściwościach (w widoku Breakpoints klikamy prawym przyciskiem na danym wyjątku i wybieramy Breakpoint Properties) możemy wskazać, czy program ma się zatrzymać na wyjątkach "łapanych", "niełapanych", czy może na również na podklasach danego wyjątku:
W kolejnym poście spojrzymy jakie jeszcze możliwości dają nam punkty wstrzymań.