Samouczek: nauka debugowania Visual Basic kodu przy użyciu Visual Studio

Ten artykuł zawiera wprowadzenie do funkcji Visual Studio w przewodniku krok po kroku. Jeśli potrzebujesz widoku wyższego poziomu funkcji debugera, zobacz Pierwsze spojrzenie na debuger. Debugowanie aplikacji zwykle oznacza, że aplikacja jest uruchamiana z dołączonym debugerem. Gdy to zrobisz, debuger udostępnia wiele sposobów na zobaczenie działania kodu podczas jego działania. Możesz przejść przez kod i przyjrzeć się wartościom przechowywanym w zmiennych, ustawić wyglądać zmienne, aby zobaczyć, kiedy wartości zmieniają się, zbadać ścieżkę wykonywania kodu, sprawdzić, czy gałąź kodu jest uruchomiona i tak dalej. Jeśli po raz pierwszy próbujesz debugować kod, przed rozpoczęciem tego artykułu warto przeczytać artykuł Debugowanie dla bezwzględnych początkujących użytkowników.

Mimo że aplikacja demonstracyjna jest Visual Basic, większość funkcji ma zastosowanie do języków C#, C++, F#, Python, JavaScript i innych języków obsługiwanych przez program Visual Studio (język F# nie obsługuje funkcji Edytuj i kontynuuj. Język F# i język JavaScript nie obsługują okna Automatyczne). Zrzuty ekranu znajdują się Visual Basic.

W tym samouczku wykonasz następujące czynności:

  • Uruchom debuger i naciśnij punkty przerwania.
  • Poznasz polecenia umożliwiające krokowe przechodzinie przez kod w debugerze
  • Sprawdzanie zmiennych w oknach porad dotyczących danych i debugera
  • Badanie stosu wywołań

Wymagania wstępne

Musisz mieć zainstalowany Visual Studio 2019 r. i obciążenie tworzenie aplikacji dla wielu platform na platformie .NET Core.

Musisz mieć zainstalowany Visual Studio 2017 i międzyplatformowe obciążenie programowe .NET Core.

Jeśli jeszcze nie zainstalowano aplikacji Visual Studio, przejdź do strony pobierania Visual Studio, aby zainstalować ją bezpłatnie.

Jeśli jeszcze nie zainstalowano aplikacji Visual Studio, przejdź do strony pobierania Visual Studio, aby zainstalować ją bezpłatnie.

Jeśli musisz zainstalować obciążenie, ale masz już Visual Studio, przejdź do tematu Narzędzia Pobierz narzędzia i > funkcje..., co spowoduje otwarcie Instalator programu Visual Studio. Ta Instalator programu Visual Studio uruchamia się. Wybierz obciążenie Tworzenie aplikacji dla wielu platform na platformie .NET Core, a następnie wybierz pozycję Modyfikuj.

Jeśli jeszcze nie zainstalowano aplikacji Visual Studio, przejdź do strony pobierania Visual Studio, aby zainstalować ją bezpłatnie.

Jeśli musisz zainstalować obciążenie, ale masz już Visual Studio, przejdź do tematu Narzędzia Pobierz narzędzia i > funkcje..., co spowoduje otwarcie Instalator programu Visual Studio. Ta Instalator programu Visual Studio uruchamia się. Wybierz obciążenie Tworzenie aplikacji klasycznych dla programu .NET, a następnie wybierz pozycję Modyfikuj.

Tworzenie projektu

Najpierw utworzysz projekt aplikacji konsolowej .NET Core. Typ projektu zawiera wszystkie potrzebne pliki szablonów, zanim jeszcze cokolwiek dodano.

  1. Otwórz program Visual Studio 2017.

  2. Na górnym pasku menu wybierz pozycję Nowy plik > > Project.

  3. W oknie dialogowym Project w okienku po lewej stronie rozwiń pozycję Visual Basic , a następnie wybierz pozycję .NET Core. W środkowym okienku wybierz pozycję Aplikacja konsoli (.NET Core). Następnie nadaj projektowi nazwę get-started-debugging.

    Jeśli nie widzisz szablonu projektu Aplikacja konsoli (.NET Core), wybierz link Otwórz Instalator programu Visual Studio w lewym okienku okna dialogowego Nowy Project aplikacji.

    Ta Instalator programu Visual Studio uruchamia się. Wybierz obciążenie Tworzenie aplikacji dla wielu platform na platformie .NET Core, a następnie wybierz pozycję Modyfikuj.

  1. Otwórz program Visual Studio.

    Jeśli okno uruchamiania nie jest otwarte, wybierz pozycję Okno > uruchamiania pliku.

  2. W oknie uruchamiania wybierz pozycję Utwórz nowy projekt.

  3. W oknie Create a new project (Tworzenie nowego projektu) wprowadź lub wpisz console (konsola) w polu wyszukiwania. Następnie wybierz Visual Basic z listy Język, a następnie wybierz pozycję Windows z listy Platforma.

    Po zastosowaniu filtrów języka i platformy wybierz szablon Aplikacja konsoli dla platformy .NET Core, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający okno Create a new project (Tworzenie nowego projektu) z elementami "console" (konsola) w polu wyszukiwania i Visual Basic "Windows" wybranymi dla filtrów Language and Platform (Język i platforma). Szablon projektu Aplikacja konsolowa jest wybrany.

    Uwaga

    Jeśli nie widzisz szablonu Aplikacja konsoli, możesz go zainstalować w oknie Tworzenie nowego projektu. W komunikacie Nie można znaleźć tego, czego szukasz? wybierz link Zainstaluj więcej narzędzi i funkcji. Następnie w chmurze Instalator programu Visual Studio obciążenie Tworzenie aplikacji dla wielu platform dla platformy .NET Core.

  4. W oknie Konfigurowanie nowego projektu wpisz lub wprowadź get-started-debugging w polu Project projektu. Następnie wybierz pozycję Dalej.

  5. Wybierz zalecaną platformę docelową (.NET Core 3.1) lub .NET 5, a następnie wybierz pozycję Utwórz.

    Visual Studio otworzy nowy projekt.

  1. Otwórz program Visual Studio.

    Jeśli okno uruchamiania nie jest otwarte, wybierz pozycję Okno > uruchamiania pliku.

  2. W oknie uruchamiania wybierz pozycję Utwórz nowy projekt.

  3. W oknie Create a new project (Tworzenie nowego projektu) wprowadź lub wpisz console (konsola) w polu wyszukiwania. Następnie wybierz Visual Basic z listy Język, a następnie wybierz pozycję Windows z listy Platforma.

    Po zastosowaniu filtrów języka i platformy wybierz szablon Aplikacja konsolowa dla platformy .NET Core, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający okno Tworzenie nowego projektu z wybraną oknie "konsola" w polu wyszukiwania oraz Visual Basic "Windows" i "Windows" dla filtrów Język i Platforma. Szablon projektu Aplikacja konsolowa jest wybrany.

    Uwaga

    Jeśli nie widzisz szablonu Aplikacja konsolowa, możesz go zainstalować w oknie Tworzenie nowego projektu. W komunikacie Nie można znaleźć tego, czego szukasz? wybierz link Zainstaluj więcej narzędzi i funkcji. Następnie w Instalator programu Visual Studio wybierz obciążenie Tworzenie aplikacji klasycznych dla programu .NET.

  4. W oknie Konfigurowanie nowego projektu wpisz lub wprowadź get-started-debugging w polu Project projektu. Następnie wybierz pozycję Dalej.

  5. W oknie Dodatkowe informacje upewnij się, że zalecana jest docelowa framework (.NET 6.0), a następnie wybierz pozycję Utwórz.

    Visual Studio otworzy nowy projekt.

Tworzenie aplikacji

  1. W programie Program.vb zastąp cały kod domyślny następującym kodem:

    Imports System
    
    Class ArrayExample
        Public Shared Sub Main()
            Dim letters As Char() = {"f"c, "r"c, "e"c, "d"c, " "c, "s"c, "m"c, "i"c, "t"c, "h"c}
            Dim name As String = ""
            Dim a As Integer() = New Integer(9) {}
    
            For i As Integer = 0 To letters.Length - 1
                name += letters(i)
                a(i) = i + 1
                SendMessage(name, a(i))
            Next
    
            Console.ReadKey()
        End Sub
    
        Private Shared Sub SendMessage(ByVal name As String, ByVal msg As Integer)
            Console.WriteLine("Hello, " & name & "! Count to " & msg)
        End Sub
    End Class
    

Uruchom debuger!

  1. Naciśnij klawisz F5 (Debuguj > Rozpocznij debugowanie) lub przycisk Rozpocznij debugowanie na pasku narzędzi debugowania.

    Klawisz F5 uruchamia aplikację z debugerem dołączonym do procesu aplikacji, ale w tej chwili nie zrobiliśmy nic specjalnego, aby przeanalizować kod. Aplikacja po prostu się ładuje, a zobaczysz dane wyjściowe konsoli.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    W tym samouczku przyjrzymy się bliżej tej aplikacji przy użyciu debugera i zobaczymy funkcje debugera.

  2. Zatrzymaj debuger, naciskając czerwony przycisk zatrzymania (Shift + F5).

  3. W oknie konsoli naciśnij klawisz , aby zamknąć okno konsoli.

  1. Naciśnij klawisz F5 (Debuguj > Rozpocznij debugowanie) lub wybierz zielony przycisk Rozpocznij debugowanie na pasku narzędzi debugowania.

    Zrzut ekranu przedstawiający pasek narzędzi Debugowanie z wyróżniony zielonym przyciskiem "Rozpocznij debugowanie".

    Klawisz F5 uruchamia aplikację z debugerem dołączonym do procesu aplikacji, ale w tej chwili nie zrobiliśmy nic specjalnego, aby przeanalizować kod. Aplikacja po prostu się ładuje, a zobaczysz dane wyjściowe konsoli.

    Hello, f! Count to 1
    Hello, fr! Count to 2
    Hello, fre! Count to 3
    Hello, fred! Count to 4
    Hello, fred ! Count to 5
    Hello, fred s! Count to 6
    Hello, fred sm! Count to 7
    Hello, fred smi! Count to 8
    Hello, fred smit! Count to 9
    Hello, fred smith! Count to 10
    

    W tym samouczku przyjrzymy się bliżej tej aplikacji przy użyciu debugera i zobaczymy funkcje debugera.

  2. Zatrzymaj debuger, naciskając klawisz (Shift F5) lub wybierz czerwony przycisk + Zatrzymaj debugowanie na pasku narzędzi debugowania.

    Zrzut ekranu przedstawiający pasek narzędzi debugowania z wyróżniony czerwonym przyciskiem "Zatrzymaj debugowanie".

  3. W oknie konsoli naciśnij klawisz , aby zamknąć okno konsoli.

Ustawianie punktu przerwania i uruchamianie debugera

  1. W pętli funkcji ustaw punkt przerwania, klikając lewy For Main margines następującego wiersza kodu:

    name += letters(i)

    W miejscu ustawienia punktu przerwania zostanie wyświetlone czerwone kółko.

    Punkty przerwania są jedną z najbardziej podstawowych i najważniejszych funkcji niezawodnego debugowania. Punkt przerwania wskazuje, gdzie program Visual Studio powinien wstrzymać uruchomiony kod, aby można było przyjrzeć się wartościom zmiennych, zachowaniu pamięci, czy uruchamianiu gałęzi kodu.

  2. Naciśnij klawisz F5 lub przycisk Rozpocznij debugowanie , aplikacja zostanie uruchomiona, a debuger zostanie uruchomiony do wiersza kodu, w którym ustawisz punkt przerwania.

    Zrzut ekranu przedstawiający Visual Studio edytora kodu z zatrzymaną wykonywaniem w punkcie przerwania.

    Żółta strzałka reprezentuje instrukcje, na których debuger został wstrzymany, co również wstrzymuje wykonywanie aplikacji w tym samym momencie (ta instrukcja nie została jeszcze wykonana).

    Jeśli aplikacja nie jest jeszcze uruchomiona, klawisz F5 uruchamia debuger i zatrzymuje się w pierwszym punkcie przerwania. W przeciwnym razie klawisz F5 kontynuuje uruchamianie aplikacji do następnego punktu przerwania.

    Punkty przerwania są przydatną funkcją, gdy znasz wiersz kodu lub sekcję kodu, którą chcesz szczegółowo zbadać. Aby uzyskać informacje na temat różnych typów punktów przerwania, które można ustawić, takich jak warunkowe punkty przerwania, zobacz Using breakpoints(Używanie punktów przerwania).

  1. W pętli funkcji ustaw punkt przerwania, klikając lewy For Main margines następującego wiersza kodu:

    name += letters(i)

    W miejscu ustawienia punktu przerwania zostanie wyświetlone czerwone kółko.

    Punkty przerwania są jedną z najbardziej podstawowych i najważniejszych funkcji niezawodnego debugowania. Punkt przerwania wskazuje, gdzie program Visual Studio powinien wstrzymać uruchomiony kod, aby można było przyjrzeć się wartościom zmiennych, zachowaniu pamięci lub czy jest uruchamiana gałąź kodu.

  2. Naciśnij klawisz F5 (Debuguj > Rozpocznij debugowanie) lub przycisk Rozpocznij debugowanie na pasku narzędzi debugowania, aplikacja zostanie uruchomiona,a debuger zostanie uruchomiony do wiersza kodu, w którym ustawiono punkt przerwania.

    Zrzut ekranu przedstawiający Visual Studio edytora kodu z zatrzymaną wykonywaniem w punkcie przerwania.

    Żółta strzałka reprezentuje instrukcje, na których debuger został wstrzymany, co również wstrzymuje wykonywanie aplikacji w tym samym momencie (ta instrukcja nie została jeszcze wykonana).

    Jeśli aplikacja nie jest jeszcze uruchomiona, klawisz F5 uruchamia debuger i zatrzymuje się w pierwszym punkcie przerwania. W przeciwnym razie klawisz F5 kontynuuje uruchamianie aplikacji do następnego punktu przerwania.

    Punkty przerwania są przydatną funkcją, gdy znasz wiersz kodu lub sekcję kodu, którą chcesz szczegółowo zbadać. Aby uzyskać informacje na temat różnych typów punktów przerwania, które można ustawić, takich jak warunkowe punkty przerwania, zobacz Using breakpoints(Używanie punktów przerwania).

W tym miejscu używamy przede wszystkim skrótów klawiaturowych, ponieważ jest to dobry sposób na szybkie wykonywanie aplikacji w debugerze (równoważne polecenia, takie jak polecenia menu, są wyświetlane w nawiasach).

  1. Po wstrzymaniu w pętli w metodzie naciśnij dwukrotnie klawisz For Main F11 (lub wybierz pozycję Debuguj,> klawisz Step Into ), aby przejść do SendMessage wywołania metody.

    Po dwukrotnym naciśnięciu klawisza F11 powinien być w tym wierszu kodu:

    SendMessage(name, a(i))

  2. Naciśnij jeszcze raz klawisz F11, aby uzyskać dostęp do metody SendMessage .

    Żółty wskaźnik przesuwa się do SendMessage metody .

    Zrzut ekranu przedstawiający sesję debugowania w edytorze Visual Studio z wstrzymanym wykonywaniem po wykonaniu krokowego metody "SendMessage".

    Klawisz F11 to polecenie Step Into, które umożliwia postęp wykonywania aplikacji po jednej instrukcji na raz. F11 to dobry sposób na szczegółowe zbadanie przepływu wykonywania. (Aby szybciej przechodzić przez kod, pokazujemy również inne opcje). Domyślnie debuger pomija kod niebędący użytkownikiem (jeśli chcesz uzyskać więcej szczegółów, zobacz Tylko mój kod).

    Załóżmy, że po zapoznaniu się z metodą chcesz wyjść z metody, ale SendMessage pozostać w debugerze. Możesz to zrobić za pomocą polecenia Wyetapuj.

  3. Naciśnij klawisz Shift + F11 (lub Debuguj > wyetapiuj).

    To polecenie wznawia wykonywanie aplikacji (i postępuje debuger) do momentu, gdy bieżąca metoda lub funkcja zwróci wartość .

    Powinien nawrócić pętlę For w Main metodzie , wstrzymany w wywołaniu SendMessage metody .

  4. Naciśnij klawisz F11 kilka razy, aż wrócisz ponownie SendMessage do wywołania metody.

  5. Po wstrzymaniu w wywołaniu metody naciśnij klawisz F10 (lub wybierz pozycję > Przekłoń) raz.

    Zrzut ekranu przedstawiający sesję debugowania w edytorze Visual Studio z wstrzymanym wykonywaniem po wykonaniu krokowego wywołania metody "SendMessage".

    Zauważ, że tym razem debuger nie wchodzi do SendMessage metody . Klawisz F10 umożliwia postęp debugera bez przechodzenia do funkcji lub metod w kodzie aplikacji (kod jest nadal wykonywany). Naciskając klawisz F10 w wywołaniu metody SendMessage (zamiast klawisza F11), pominieliśmy kod implementacji dla (którego być może nie jesteśmy zainteresowani SendMessage w tej chwili). Aby uzyskać więcej informacji na temat różnych sposobów przechodzenia przez kod, zobacz Navigate code in the debugger (Nawigowanie po kodzie w debugerze).

W tym artykule używamy skrótów klawiaturowych, ponieważ jest to dobry sposób na szybkie wykonywanie aplikacji w debugerze (równoważne polecenia, takie jak polecenia menu, są wyświetlane w nawiasach).

  1. Po wstrzymaniu w pętli w metodzie naciśnij dwukrotnie klawisz For Main F11 (lub wybierz pozycję Debuguj,> klawisz Step Into ), aby przejść do SendMessage wywołania metody.

    Po dwukrotnym naciśnięciu klawisza F11 powinien być w tym wierszu kodu:

    SendMessage(name, a(i))

  2. Naciśnij jeszcze raz klawisz F11, aby uzyskać dostęp do metody SendMessage .

    Żółty wskaźnik przesuwa się do SendMessage metody .

    Zrzut ekranu przedstawiający sesję debugowania w edytorze Visual Studio z wstrzymanym wykonywaniem po wykonaniu krokowego metody "SendMessage".

    Klawisz F11 to polecenie Step Into, które umożliwia postęp wykonywania aplikacji po jednej instrukcji na raz. F11 to dobry sposób na szczegółowe zbadanie przepływu wykonywania. (Aby szybciej przechodzić przez kod, pokazujemy również inne opcje). Domyślnie debuger pomija kod niebędący użytkownikiem (jeśli chcesz uzyskać więcej szczegółów, zobacz Tylko mój kod).

    Załóżmy, że po zapoznaniu się z metodą chcesz wyjść z metody, ale SendMessage pozostać w debugerze. Możesz to zrobić za pomocą polecenia Wyetapuj.

  3. Naciśnij klawisz Shift + F11 (lub Debuguj > wyetapiuj).

    To polecenie wznawia wykonywanie aplikacji (i postępuje debuger) do momentu, gdy bieżąca metoda lub funkcja zwróci wartość .

    Powinien nawrócić pętlę For w Main metodzie , wstrzymany w wywołaniu SendMessage metody .

  4. Naciśnij klawisz F11 kilka razy, aż wrócisz ponownie SendMessage do wywołania metody.

  5. Po wstrzymaniu w wywołaniu metody naciśnij klawisz F10 (lub wybierz pozycję > Przekłoń) raz.

    Zrzut ekranu przedstawiający sesję debugowania w edytorze Visual Studio z wykonywaniem wstrzymanym po wykonaniu krokowego wywołania metody "SendMessage".

    Zauważ, że tym razem debuger nie wchodzi do SendMessage metody . Klawisz F10 umożliwia postęp debugera bez przechodzenia do funkcji lub metod w kodzie aplikacji (kod jest nadal wykonywany). Naciskając klawisz F10 w wywołaniu metody SendMessage (zamiast klawisza F11), pominieliśmy kod implementacji dla (którego być może nie jesteśmy zainteresowani SendMessage w tej chwili). Aby uzyskać więcej informacji na temat różnych sposobów przechodzenia przez kod, zobacz Navigate code in the debugger (Nawigowanie po kodzie w debugerze).

  1. Naciśnij klawisz F5, aby ponownie przejść do punktu przerwania.

  2. W edytorze kodu przewiń w dół i umieść kursor nad metodą w metodzie, aż po lewej stronie pojawi się zielony przycisk Uruchom do Console.WriteLine SendMessage kliknięcia. Etykietka narzędzia przycisku zawiera tekst "Uruchom wykonywanie do tego miejscu".

    Zrzut ekranu przedstawiający przycisk Uruchom do kliknięcia z wyróżnione etykietki narzędzia po lewej stronie okna edytora kodu.

    Uwaga

    Przycisk Uruchom do kliknięcia jest nowy w programie Visual Studio 2017 . (Jeśli nie widzisz zielonego przycisku strzałki, użyj klawisza F11 w tym przykładzie, aby przejść debuger w odpowiednie miejsce).

  3. Kliknij przycisk Uruchom, aby kliknąć.

    Debuger jest przekierowywowyny do Console.WriteLine metody .

    Użycie tego przycisku jest podobne do ustawiania tymczasowego punktu przerwania. Funkcja Uruchom do kliknięcia umożliwia szybkie poruszanie się w widocznym regionie kodu aplikacji (możesz kliknąć dowolny otwarty plik).

  1. Naciśnij klawisz F5, aby ponownie przejść do punktu przerwania.

  2. W edytorze kodu przewiń w dół i umieść kursor nad metodą w metodzie, aż po lewej stronie pojawi się zielony przycisk Uruchom do Console.WriteLine SendMessage kliknięcia. Etykietka narzędzia przycisku zawiera tekst "Uruchom wykonywanie do tego miejscu".

    Zrzut ekranu przedstawiający przycisk Uruchom do kliknięcia z wyróżnione etykietki narzędzia po lewej stronie okna edytora kodu.

  3. Wybierz przycisk Uruchom do kliknięcia.

    Debuger jest przekierowywowyny do Console.WriteLine metody .

    Użycie tego przycisku jest podobne do ustawiania tymczasowego punktu przerwania. Funkcja Uruchom do kliknięcia umożliwia szybkie poruszanie się w widocznym regionie kodu aplikacji (możesz kliknąć dowolny otwarty plik).

Szybkie ponowne uruchamianie aplikacji

Kliknij przycisk Uruchom ponownie na pasku narzędzi debugowania (Ctrl + Shift + F5).

Naciśnięcie przycisku Uruchom ponownie pozwala zaoszczędzić czas w porównaniu z zatrzymywaniem aplikacji i ponownym uruchamianiem debugera. Debuger jest wstrzymywany w pierwszym punkcie przerwania, który zostanie trafiony przez wykonanie kodu.

Debuger zatrzymuje się ponownie w punkcie przerwania, który został wcześniej ustawiony wewnątrz For pętli.

Aby ponownie uruchomić aplikację, naciśnij kombinację klawiszy Ctrl + Shift F5, co pozwala zaoszczędzić czas w porównaniu z zatrzymywaniem aplikacji i ponownym + uruchamianiem debugera. Debuger jest wstrzymywany w pierwszym punkcie przerwania, który zostanie trafiony przez wykonanie kodu.

Debuger zatrzymuje się ponownie w punkcie przerwania, który został wcześniej ustawiony wewnątrz For pętli.

Sprawdzanie zmiennych za pomocą porad dotyczących danych

Funkcje, które umożliwiają sprawdzanie zmiennych, są jedną z najbardziej przydatnych funkcji debugera i istnieją różne sposoby, aby to zrobić. Często podczas próby debugowania problemu próbujesz dowiedzieć się, czy zmienne przechowują wartości, których oczekujesz w określonym czasie.

  1. Po wstrzymaniu instrukcji umieść kursor nad zmienną i zobaczysz jej wartość domyślną, czyli wartość pierwszego name += letters[i] letters elementu w tablicy "f"c .

  2. Następnie umieść kursor nad name zmienną i zobaczysz jej bieżącą wartość, czyli pusty ciąg.

  3. Naciśnij kilka razy klawisz F5 (lub Kontynuuj debugowanie), aby kilka razy iterować po pętli, wsłuchiwać się ponownie w punkcie przerwania i za każdym razem umieszczać kursor nad zmienną, aby sprawdzić jej > For name wartość.

    Zrzut ekranu przedstawiający zatrzymane wykonywanie debugowania w edytorze kodu z wyróżnioną zmienną "name" i poradą danych pokazującą wartość "fre".

    Wartość zmiennej zmienia się z każdą iteracją pętli, pokazując wartości For , następnie , następnie , i tak f fr fre dalej.

    Często podczas debugowania chcesz szybko sprawdzić wartości właściwości zmiennych, aby sprawdzić, czy przechowują one wartości, które powinny być przechowywane, a porady dotyczące danych to dobry sposób, aby to zrobić.

Funkcje, które umożliwiają sprawdzanie zmiennych, są jedną z najbardziej przydatnych funkcji debugera i istnieją różne sposoby, aby to zrobić. Często podczas próby debugowania problemu próbujesz dowiedzieć się, czy zmienne przechowują wartości, których oczekujesz w określonym czasie.

  1. Po wstrzymaniu instrukcji umieść kursor nad zmienną i zobaczysz jej wartość domyślną, czyli wartość pierwszego name += letters[i] letters elementu w tablicy "f"c .

  2. Następnie umieść kursor nad name zmienną i zobaczysz jej bieżącą wartość, czyli pusty ciąg.

  3. Naciśnij kilka razy klawisz F5 (lub Kontynuuj debugowanie), aby kilka razy iterować po pętli, wsłuchiwać się ponownie w punkcie przerwania i za każdym razem umieszczać kursor nad zmienną, aby sprawdzić jej > For name wartość.

    Zrzut ekranu przedstawiający zatrzymane wykonywanie debugowania w edytorze kodu z wyróżnioną zmienną "name" i poradą danych pokazującą wartość "fre".

    Wartość zmiennej zmienia się z każdą iteracją pętli, pokazując wartości For , następnie , następnie , i tak f fr fre dalej.

    Często podczas debugowania chcesz szybko sprawdzić wartości właściwości zmiennych, aby sprawdzić, czy przechowują one wartości, które powinny być przechowywane, a porady dotyczące danych to dobry sposób, aby to zrobić.

Sprawdzanie zmiennych przy użyciu okien zmiennych automatycznych i zmiennych lokalnych

  1. Spójrz na okno Automatyczne w dolnej części edytora kodu.

    Jeśli jest zamknięty, otwórz go po wstrzymaniu w debugerze, wybierając polecenie Debuguj Windows > > automatyczne.

    W oknie Automatyczne zobaczysz zmienne i ich bieżącą wartość. Okno Automatyczne wyświetla wszystkie zmienne używane w bieżącym wierszu lub poprzednim wierszu (sprawdź dokumentację pod celu sprawdzenia zachowania specyficznego dla języka).

  2. Następnie przyjrzyj się oknie Locals (Ustawienia lokalne) na karcie obok okna Autos (Automatyczne).

  3. Rozwiń letters zmienną, aby wyświetlić elementy, które zawiera.

    Zrzut ekranu przedstawiający okno Zmiennych lokalnych z rozwiniętą zmienną "litery" w celu pokazania wartości i typu elementów, które zawiera.

    Okno Zmienne lokalne zawiera zmienne, które znajdują się w bieżącym zakresie , czyli bieżącym kontekście wykonywania.

  1. Spójrz na okno Automatyczne w dolnej części edytora kodu.

    Jeśli jest zamknięty, otwórz go po wstrzymaniu w debugerze, wybierając polecenie Debuguj Windows > > automatyczne.

    W oknie Automatyczne zobaczysz zmienne i ich bieżącą wartość. Okno Automatyczne wyświetla wszystkie zmienne używane w bieżącym wierszu lub poprzednim wierszu (sprawdź dokumentację pod celu sprawdzenia zachowania specyficznego dla języka).

  2. Następnie przyjrzyj się oknie Locals (Ustawienia lokalne) na karcie obok okna Autos (Automatyczne).

  3. Rozwiń letters zmienną, aby wyświetlić elementy, które zawiera.

    Zrzut ekranu przedstawiający okno Zmiennych lokalnych z rozwiniętą zmienną "litery" w celu pokazania wartości i typu elementów, które zawiera.

    Okno Zmienne lokalne zawiera zmienne, które znajdują się w bieżącym zakresie , czyli bieżącym kontekście wykonywania.

Ustawianie zegarka

  1. W głównym oknie edytora kodu kliknij prawym przyciskiem myszy name zmienną i wybierz polecenie Dodaj czujkę.

    W dolnej części edytora kodu zostanie otwarte okno Czujka. W oknie Wyrażenie czujki można określić zmienną (lub wyrażenie), którą chcesz śledzić.

    Teraz masz zegarek ustawiony na zmienną i możesz zobaczyć, jak jej wartość zmienia się podczas name przechodzenia przez debuger. W przeciwieństwie do innych okien zmiennych, okno Czujka zawsze pokazuje obserwowane zmienne (są one wyszarowane, gdy są poza zakresem).

Badanie stosu wywołań

  1. Po wstrzymaniu w pętli kliknij okno Stos wywołań, które jest domyślnie For otwarte w prawym dolnym okienku.

    Jeśli jest zamknięty, otwórz go po wstrzymaniu w debugerze, wybierając polecenie > Windows > stos wywołań.

  2. Klikaj klawisz F11 kilka razy, aż w metodzie zostanie wyświetlony debuger wstrzymywany. SendMessage Spójrz na okno Stos wywołań.

    Zrzut ekranu przedstawiający Visual Studio stos wywołań z wywołaniem metody SendMessage wyróżnione w górnym wierszu.

    Okno Stos wywołań pokazuje kolejność wywoływania metod i funkcji. Górny wiersz pokazuje bieżącą funkcję SendMessage (metodę w tej aplikacji). Drugi wiersz pokazuje, że SendMessage został wywołany z Main metody i tak dalej.

    Uwaga

    Okno stosu wywołań jest podobne do perspektywy debugowania w niektórych środowiskach PROJEKTOWYCH, takich jak Eclipse.

    Stos wywołań to dobry sposób na zbadanie i zrozumienie przepływu wykonywania aplikacji.

    Możesz kliknąć dwukrotnie wiersz kodu, aby przejść do tego kodu źródłowego i zmienić bieżący zakres, który jest sprawdzany przez debuger. Ta akcja nie powoduje postępu debugera.

    Możesz również użyć menu otwieranych prawym przyciskiem myszy w oknie stosu wywołań, aby wykonać inne czynności. Możesz na przykład wstawić punkty przerwania do określonych funkcji, przejść do debugera za pomocą polecenia Uruchom do kursora i przejść do kodu źródłowego. Aby uzyskać więcej informacji, zobacz How to: Examine the Call Stack.

  1. Po wstrzymaniu w pętli kliknij okno Stos wywołań, które jest domyślnie otwarte For w prawym dolnym okienku.

    Jeśli jest zamknięty, otwórz go po wstrzymaniu w debugerze, wybierając polecenie > Windows > stos wywołań.

  2. Klikaj klawisz F11 kilka razy, aż w metodzie zostanie wyświetlony debuger wstrzymywany. SendMessage Spójrz na okno Stos wywołań.

    Zrzut ekranu przedstawiający Visual Studio stos wywołań z wywołaniem metody SendMessage wyróżnione w górnym wierszu.

    Okno Stos wywołań pokazuje kolejność wywoływania metod i funkcji. Górny wiersz pokazuje bieżącą funkcję SendMessage (metodę w tej aplikacji). Drugi wiersz pokazuje, że SendMessage został wywołany z Main metody i tak dalej.

    Uwaga

    Okno stosu wywołań jest podobne do perspektywy debugowania w niektórych środowiskach PROJEKTOWYCH, takich jak Eclipse.

    Stos wywołań to dobry sposób na zbadanie i zrozumienie przepływu wykonywania aplikacji.

    Możesz kliknąć dwukrotnie wiersz kodu, aby przejść do tego kodu źródłowego i zmienić bieżący zakres, który jest sprawdzany przez debuger. Ta akcja nie powoduje postępu debugera.

    Możesz również użyć menu otwieranych prawym przyciskiem myszy w oknie stosu wywołań, aby wykonać inne czynności. Możesz na przykład wstawić punkty przerwania do określonych funkcji, przejść do debugera za pomocą polecenia Uruchom do kursora i przejść do kodu źródłowego. Aby uzyskać więcej informacji, zobacz How to: Examine the Call Stack.

Zmienianie przepływu wykonywania

  1. Naciśnij dwukrotnie klawisz F11, aby uruchomić Console.WriteLine metodę .

  2. Po wstrzymaniu debugera w wywołaniu metody użyj myszy, aby chwycić żółtą strzałkę (wskaźnik wykonywania) po lewej stronie i przenieść ją w górę o jeden wiersz z powrotem do SendMessage Console.WriteLine .

  3. Naciśnij klawisz F11.

    Debuger ponownie uruchomić metodę Console.WriteLine (widać to w danych wyjściowych okna konsoli).

    Zmieniając przepływ wykonywania, możesz na przykład przetestować różne ścieżki wykonywania kodu lub ponownie uruchomić kod bez ponownego uruchamiania debugera.

    Ostrzeżenie

    Często należy zachować ostrożność podczas pracy z tą funkcją i w etykietce narzędzia jest wyświetlane ostrzeżenie. Mogą pojawić się również inne ostrzeżenia. Przeniesienie wskaźnika nie może przywrócić wcześniejszego stanu aplikacji.

  4. Naciśnij klawisz F5, aby kontynuować uruchamianie aplikacji.

    Gratulujemy ukończenia tego samouczka!

Następne kroki

W tym samouczku nauczyliśmy się uruchamiać debuger, przechodzić przez kod i sprawdzać zmienne. Możesz chcieć uzyskać szczegółowe informacje na temat funkcji debugera wraz z linkami do dodatkowych informacji.