Temat: Zaawansowane opcje debuggera

Znajomość bardziej zaawansowanych opcji, może dodatkowo zaoszczędzić nam czas podczas debugowania.

Run to cursor

Uruchomiliśmy w trybie debugowania prosty program i w danej chwili nasz kursor znajduje się na pierwszej pętli for:
http://www.student.mvlab.pl/wiedza/img/m/2/t/p17dis2r1fm0nvo21pdpbm0a63.png

Załóżmy, że nie chcemy przechodzić przez wszystkie iteracje tej pętli (czasem może ich być sporo), tylko chcielibyśmy od razu przejść do debugowania drugiej pętli.

Moglibyśmy to zrobić wstawiając obok drugiej pętli breakpoint i wciskając przycisk F5 (Continue):
http://www.student.mvlab.pl/wiedza/img/m/2/t/p17dis7hetiaj11ojf9e1jlmgdm5.png

Prostszym sposobem (dodatkowo nie wymagającym późniejszego czyszczenia tego breakpointa) jest kliknięcie prawym przyciskiem myszy w miejscu, do którego chcemy dotrzeć i wybranie opcji "Run To Cursor". Cały kod zostanie wykonany aż do tego miejsca.
http://www.student.mvlab.pl/wiedza/img/m/2/t/p17disanjq1j3vp2cr9l4tt1amm7.png

Set Next Statement

Opcja ta pozwala nam zmienić kolejność wykonywania programu.

Załóżmy na przykład, że nasz program odczytuje dane z pliku.
Po długiej interakcji z programem (wybór opcji z menu, wpisanie nazwy pliku...) stwierdzamy podczas debugowania, że pliku nie udało się otworzyć - program wszedł od razu w warunek wyświetlający komunikat o błędzie:
http://www.student.mvlab.pl/wiedza/img/m/2/t/p17dispic31mtd1qbv1pvu10928lu3.png

Szybko zauważamy, że powód jest banalny - zapomnieliśmy umieścić plik we właściwym katalogu.

Naprawiamy ten błąd, wgrywając plik we właściwe miejsce.

Aby nie trzeba było zatrzymywać działania programu, uruchamiać go od nowa i raz jeszcze przechodzić całej procedury interakcji z programem (wybór z menu, wpisywanie nazwy), możemy kliknąć prawym przyciskiem myszy na linii kodu, do której chcielibyśmy wrócić i wybrać polecenie "Set Next Statement".
http://www.student.mvlab.pl/wiedza/img/m/2/t/p17disve0tp7svu01kbl8gqn205.png

Kursor debuggera zostanie przestawiony w to miejsce i będziemy mieć możliwość ponownego przejścia przez ten fragment kodu.


Edycja kodu w trakcie działania programu

Załóżmy, że debugujemy prosty program:
http://www.student.mvlab.pl/wiedza/img/m/2/t/p17dit797u1ja41oqobrgdnsmt63.png

Podczas debugowania zdajemy sobie sprawę, że w pętli for, która właśnie ma zacząć działanie, chodziło nam tak naprawdę o zwiększenie elementów tablicy o 3, a nie o 2.

Aby to poprawić, nie musimy wyłączać programu, możemy zmienić kod od razu i kontynuować debugowanie - każdy element tablicy zostanie zwiększony o 3.
http://www.student.mvlab.pl/wiedza/img/m/2/t/p17ditbrso131l12nj1chc1ano1ui55.png

Edycja wartości zmiennej w trakcie działania programu

Jeżeli w trakcie debugowania programu zauważymy, że któraś z naszych zmiennych przyjmuje nieprawidłową wartość, a chcemy sprawdzić pozostałą część kodu, możemy zmienić wartość tej zmiennej klikając w nią dwukrotnie w oknie Locals, Watch lub w okienku, które pojawia się po najechaniu na jej nazwę.

http://www.student.mvlab.pl/wiedza/img/m/2/t/p17ditlnn61ula1vrfpc21hph1ngt3.png

http://www.student.mvlab.pl/wiedza/img/m/2/t/p17diu7a6g1go2c9t1sqo7sq1oau3.png