BreakPointWyjaśnię działanie breakpoint-ów  i pokażę jak debugować kod w Visual Studio.

Na przykładzie kodu z  dwiema pętlami for , które rysują na konsoli taki wzór gwiazdek.

 

Consolowa aplikacja do testowania

Oto kod tych dwóch pętli for wraz z warunkami if

int a = 0;
for (int i = 0; i <= 6; i++)
{
    for (int j = 10; j > 0; j--)
    {
        if ((i == 0) || (i == 6))
            Console.Write("*******");
        else if ((i == 2) || (i == 4))
            Console.Write("** **");
        else Console.Write("* * *");
    }
    Console.WriteLine();
}

Niedługo zrobię wpis o pętlach i  o warunkach, więc jeśli jesteś początkującym programistą i nie wiesz co to pętla  for , bądź warunek if , będziesz musiał trochę poczekać. Teraz  te wpisy na temat warunków i pętli  są  i możesz uzupełnić swoje braki tutaj.

Przy czym do zrozumienia, jak debuguje się kod nie jest to potrzebne.

We wpisie będziemy śledzić jak te dwie pętle rysują gwiazdki. Wstaw kod do aplikacji konsolowej i do dzieła.

BreakPoint

Breakpoint pozwalają zatrzymać aplikacje w danym momencie i wtedy można sprawdzić jakie wartości mają nasze zmienne i nie tylko.

BreakPoint Debugowanie

Aby postawić Breakpoint-a (czerwoną kropkę) znajdź małą białą przestrzeń pomiędzy kodem C#  a innym oknem z lewej strony Visual Studio. Na początku postaw breakpoint-a przy deklaracji zmiennej “a”.

Teraz, jeśli chcesz zobaczyć działanie naszej czerwonej kropki wybierz z menu “Debug/Start Debugging”’. Uruchamiając program  bez debugowania (druga opcja) nie będziesz mógł śledzić działania aplikacji.

Rozpoczęcie debugowania

Jeśli wszystko zrobiłeś prawidłowo aplikacja się zatrzymała ,a w konsoli nie będzie jeszcze narysowanej żadnej gwiazdki.
Notatki z Visual Studio

Najeżdżając kursorem myszki na zmienną “a” możesz zobaczyć jej notatkę. W Visual Studio 2010 możesz tę notatkę zaznaczyć. W ten sposób będzie ona widoczna, nawet gdy uciekniesz już kursorem myszki od zmiennej “a”.
Dodawanie komentarzy do notatki Visual Studio 2010

Jeśli chcesz możesz nawet dodawać komentarze do zmiennych.

Pod kodem powinieneś znaleźć okna takie jak “Locals” i “Autos” oraz “Watch1”. Jeśli ich nie możesz znaleźć możesz jej wywołać za pomocą menu, które znajduje w opcjach debugowania.

Okna te można znaleźć

Okna te  można wywołać też z menu “Debug/Windows”.

Windows debbug Visual Studio 2010

W nich też możesz śledzić przebieg zmiennych bez zaznaczania ich.

Locals

W oknie “Watch1” możesz napisać listę zmiennych, które będziesz chciał obserwować. Mogą to być zmienne, które na chwilę obecną nie istnieją w programie jak “i” i “j”, ponieważ żadna pętla jeszcze nie zadeklarowała swoich zmiennych.

watch

No dobrze nasz program się zatrzymał ,ale co zrobić, by zaczął działać ponownie, albo może spróbować śledzić krok po kroku, co się w nim dzieje. Oto dalsze instrukcje.

Opcje debugowania

Wciskając znak PLAY (zielony trójkąt) program będzie działać dalej chyba ,że napotka kolejny breakpoint.

Stop (niebieski kwadrat) zatrzyma cały proces debugowania programu.

Znak Stop ze strzałką zatrzyma proces debugowanie, ale automatycznie zrestartuje aplikacje.

Dzięki ikonce, która jest podświetlana na obrazku możesz spacerować po aplikacji i zobaczyć jak ona działa krok po kroku. Skrót klawiszowy F11.

Śledzenie pętli w programie

Teraz możesz zobaczyć jak kod wykonuje się w programie oraz jak zmienne “i” i “j” się zmieniają. W czasie ich zmiany są one podkreślane na czerwono.

Oczywiście śledzenie takiej aplikacji nie jest taką fajną sprawą. Jedna pętla for wykona kod 7 razy ,a w tym kodzie jest kolejna pętla for ,która wykona się 10 razy. W sumie kod w drugiej pętli wykona się, aż 70 razy.

Nawet postawienie breakpoint tutaj zbytnio nie ułatwi sprawy. Co, jeśli byśmy chcieli śledzić pętle ,ale tylko pod pewnymi warunkami. No właśnie to też w Visual Studio jest możliwe.

Zatrzymaj proces debugowania.

Zaawansowany BreakPoint

Klikając prawym przyciskiem myszki możesz zobaczyć więcej opcji dla naszej czerwonej kropki.

Prawy przycisk breakpoint więcej opcji

W opcji Export możesz wyeksportować wszystkie postawione czerwone kropki do pliku xml.

Jak widzisz możesz go skasować (skasować breakpoint można też poprzez ponowne klikniecie na niego lewy przyciskiem myszki) lub go tymczasowo wyłączyć “Disable Breakpoint”.

Przejdźmy jednak do innych opcji.

W Hit Count możesz określić, za którym razem program ma się zatrzymać. Możesz też określić,  co ile  uderzeń w naszą czerwoną kropkę program  ma się zatrzymywać. Jak widać to na obrazku.

Hit count

W Condition możesz ustawić, pod jakim warunkiem aplikacja musi się zatrzymać. Musi  to być wyrażenie logiczne. Możemy ustawić, czy breakpoint ma się uruchomić ,gdy   nasze wyrażenie jest true ,bądź gdy wartość wyrażenia uległa zmianie.

Conditions

Wyrażenia te mogą oczywiście być bardziej złożone.

Wyrażenia

Jak widać na obrazku poniżej breakpoint działa tylko gdy  “i” równa się 5 i gdy “j” równa się 5.

break point condtion działa


Pozostałe opcje są bardziej zaawansowane (wielowątkowość) i szczerze mówiąc jeszcze z nich nie korzystałem.

Na koniec wypada wspomnieć o tym, że mamy do dyspozycji okno “BreakPoints” ,w którym możemy jeszcze łatwiej zarządzać naszymi czerwonymi kropkami.

Okno breakpoint

To byłoby na tyle, jeśli chodzi o debugowanie jednowątkowego kodu w Visual Studio 2010.