Samouczek: debugowanie aplikacji konsolowej .NET przy użyciu programu Visual Studio

W tym samouczku przedstawiono narzędzia debugowania dostępne w programie Visual Studio.

Ważne

Wszystkie skróty klawiaturowe są oparte na wartościach domyślnych programu Visual Studio. Skróty klawiaturowe mogą się różnić, aby uzyskać więcej informacji, zobacz Skróty klawiaturowe w programie Visual Studio.

Wymagania wstępne

Korzystanie z konfiguracji kompilacji debugowania

Debugowanie i wydawanie to wbudowane konfiguracje kompilacji programu Visual Studio. Konfiguracja kompilacji debugowania służy do debugowania i konfiguracji wydania dla końcowej dystrybucji wydania.

W konfiguracji debugowania program kompiluje pełne symboliczne informacje debugowania i brak optymalizacji. Optymalizacja komplikuje debugowanie, ponieważ relacja między kodem źródłowym i wygenerowanymi instrukcjami jest bardziej złożona. Konfiguracja wydania programu nie zawiera żadnych symbolicznych informacji debugowania i jest w pełni zoptymalizowana.

Domyślnie program Visual Studio używa konfiguracji kompilacji debugowania, więc nie trzeba jej zmieniać przed debugowaniem.

  1. Uruchom program Visual Studio.

  2. Otwórz projekt utworzony w sekcji Tworzenie aplikacji konsolowej .NET przy użyciu programu Visual Studio.

    Bieżąca konfiguracja kompilacji jest wyświetlana na pasku narzędzi. Na poniższym obrazie paska narzędzi pokazano, że program Visual Studio jest skonfigurowany do kompilowania wersji debugowania aplikacji:

    Visual Studio toolbar with debug highlighted

Ustawianie punktu przerwania

Punkt przerwania tymczasowo przerywa wykonywanie aplikacji przed wykonaniem wiersza z punktem przerwania.

  1. Ustaw punkt przerwania w wierszu, który wyświetla nazwę, datę i godzinę, klikając lewy margines okna kodu w tym wierszu. Lewy margines znajduje się po lewej stronie numerów wierszy. Inne sposoby ustawiania punktu przerwania to umieszczenie kursora w wierszu kodu, a następnie naciśnięcie klawisza F9 lub wybranie pozycji Przełącz>punkt przerwania na pasku menu.

    Jak pokazano na poniższej ilustracji, program Visual Studio wskazuje wiersz, w którym ustawiono punkt przerwania, wyróżniając go i wyświetlając czerwoną kropkę na lewym marginesie.

    Visual Studio Program window with breakpoint set

  2. Naciśnij klawisz F5 , aby uruchomić program w trybie debugowania. Innym sposobem rozpoczęcia debugowania jest wybranie opcji Debuguj>rozpocznij debugowanie z menu.

  3. Wprowadź ciąg w oknie konsoli, gdy program wyświetli monit o nazwę, a następnie naciśnij klawisz Enter.

  4. Wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed wykonaniem Console.WriteLine metody. W oknie Ustawienia lokalne są wyświetlane wartości zmiennych zdefiniowanych w aktualnie wykonywanej metodzie.

    Screenshot of a breakpoint in Visual Studio

Korzystanie z okna natychmiastowego

Okno Natychmiastowe umożliwia interakcję z aplikacją, którą debugujesz. Możesz interaktywnie zmienić wartość zmiennych, aby zobaczyć, jak ma to wpływ na program.

  1. Jeśli okno Natychmiastowe nie jest widoczne, wyświetl je, wybierając pozycję Debuguj>natychmiast systemu Windows.>

  2. Wprowadź name = "Gracie" w oknie Natychmiastowe i naciśnij klawisz Enter .

  3. Wprowadź currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() w oknie Natychmiastowe i naciśnij klawisz Enter .

    W oknie Natychmiastowy zostanie wyświetlona wartość zmiennej ciągu i właściwości DateTime wartości. Ponadto wartości zmiennych są aktualizowane w oknie Ustawienia lokalne .

    Locals and Immediate Windows in Visual Studio 2019

  4. Naciśnij klawisz F5 , aby kontynuować wykonywanie programu. Innym sposobem kontynuowania jest wybranie opcji Debuguj>kontynuuj z menu.

    Wartości wyświetlane w oknie konsoli odpowiadają zmianom wprowadzonych w oknie Natychmiastowy .

    Console window showing the entered values

  5. Naciśnij dowolny klawisz, aby zamknąć aplikację i zatrzymać debugowanie.

Ustawianie warunkowego punktu przerwania

Program wyświetla ciąg wprowadzony przez użytkownika. Co się stanie, jeśli użytkownik nic nie wprowadzi? Można to przetestować za pomocą przydatnej funkcji debugowania nazywanej warunkowym punktem przerwania.

  1. Kliknij prawym przyciskiem myszy czerwoną kropkę reprezentującą punkt przerwania. W menu kontekstowym wybierz pozycję Warunki , aby otworzyć okno dialogowe Ustawienia punktu przerwania. Wybierz pole warunki, jeśli nie jest jeszcze zaznaczone.

    Editor showing breakpoint settings panel - C#

  2. W polu Wyrażenie warunkowe wprowadź następujący kod, który pokazuje przykładowy kod, który testuje wartość x 5.

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    Za każdym razem, gdy punkt przerwania zostanie trafiony, debuger wywołuje metodę String.IsNullOrEmpty(name) i przerywa działanie w tym wierszu tylko wtedy, gdy wywołanie metody zwraca truewartość .

    Zamiast wyrażenia warunkowego można określić liczbę trafień, która przerywa wykonywanie programu przed wykonaniem instrukcji określoną liczbę razy. Inną opcją jest określenie warunku filtru, który przerywa wykonywanie programu na podstawie takich atrybutów jak identyfikator wątku, nazwa procesu lub nazwa wątku.

  3. Wybierz pozycję Zamknij , aby zamknąć okno dialogowe.

  4. Uruchom program z debugowaniem, naciskając klawisz F5.

  5. W oknie konsoli naciśnij klawisz Enter po wyświetleniu monitu o wprowadzenie nazwy.

  6. Ponieważ określony warunek (name lub nullString.Empty) został spełniony, wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed wykonaniem Console.WriteLine metody.

  7. Wybierz okno Ustawienia lokalne, w którym są wyświetlane wartości zmiennych lokalnych dla aktualnie wykonywanej metody. W tym przypadku Main jest to metoda aktualnie wykonująca. Zwróć uwagę, że wartość zmiennej name to "", lub String.Empty.

  8. Upewnij się, że wartość jest pustym ciągiem, wprowadzając następującą instrukcję w oknie Natychmiastowy i naciskając klawisz Enter. Wynik to true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    Znak zapytania kieruje bezpośrednie okno, aby ocenić wyrażenie.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Naciśnij klawisz F5 , aby kontynuować wykonywanie programu.

  10. Naciśnij dowolny klawisz, aby zamknąć okno konsoli i zatrzymać debugowanie.

  11. Wyczyść punkt przerwania, klikając kropkę na lewym marginesie okna kodu. Inne sposoby wyczyszczenia punktu przerwania polegają na naciśnięciu klawisza F9 lub wybraniu pozycji Przełącz > punkt przerwania podczas wybierania wiersza kodu.

Przechodzenie przez program

Program Visual Studio umożliwia również wykonywanie kroków według linii przez program i monitorowanie jego wykonywania. Zazwyczaj należy ustawić punkt przerwania i śledzić przepływ programu przez niewielką część kodu programu. Ponieważ ten program jest mały, można przejść przez cały program.

  1. Wybierz pozycję Debuguj>krok do. Innym sposobem debugowania jednej instrukcji naraz jest naciśnięcie klawisza F11.

    Program Visual Studio wyróżnia i wyświetla strzałkę obok następnego wiersza wykonywania.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    W tym momencie okno Ustawienia lokalne pokazuje, że tablica args jest pusta i namecurrentDate ma wartości domyślne. Ponadto program Visual Studio otworzył puste okno konsoli.

  2. Naciśnij klawisz F11. Program Visual Studio wyróżnia teraz następny wiersz wykonywania. Okno Ustawienia lokalne pozostaje niezmienione, a okno konsoli pozostaje puste.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Naciśnij klawisz F11. Program Visual Studio wyróżnia instrukcję zawierającą przypisanie zmiennej name . W oknie Ustawienia lokalne jest wyświetlana nullname wartość , a w oknie konsoli zostanie wyświetlony ciąg "Jaka jest Twoja nazwa?".

  4. Odpowiedz na monit, wprowadzając ciąg w oknie konsoli i naciskając klawisz Enter. Konsola nie odpowiada, a wprowadzony ciąg nie jest wyświetlany w oknie konsoli, ale Console.ReadLine metoda będzie mimo to przechwytywać dane wejściowe.

  5. Naciśnij klawisz F11. Program Visual Studio wyróżnia instrukcję zawierającą przypisanie zmiennej currentDate . W oknie Ustawienia lokalne jest wyświetlana wartość zwrócona przez wywołanie Console.ReadLine metody . W oknie konsoli zostanie również wyświetlony ciąg wprowadzony w wierszu polecenia.

  6. Naciśnij klawisz F11. W oknie Ustawienia lokalne jest wyświetlana wartość currentDate zmiennej po przypisaniu z DateTime.Now właściwości . Okno konsoli pozostaje niezmienione.

  7. Naciśnij klawisz F11. Program Visual Studio wywołuje metodę Console.WriteLine(String, Object, Object) . W oknie konsoli zostanie wyświetlony sformatowany ciąg.

  8. Wybierz pozycję Debuguj>, aby wyjść. Innym sposobem zatrzymania wykonywania krok po kroku jest naciśnięcie klawisza Shift+F11.

    W oknie konsoli zostanie wyświetlony komunikat i zaczeka na naciśnięcie klawisza.

  9. Naciśnij dowolny klawisz, aby zamknąć okno konsoli i zatrzymać debugowanie.

Korzystanie z konfiguracji kompilacji wydania

Po przetestowaniu wersji debugowania aplikacji należy również skompilować i przetestować wersję wydania. Wersja wydania zawiera optymalizacje kompilatora, które czasami negatywnie wpływają na zachowanie aplikacji. Na przykład optymalizacje kompilatora, które mają na celu poprawę wydajności, mogą tworzyć warunki wyścigu w aplikacjach wielowątkowymi.

Aby skompilować i przetestować wersję wydania aplikacji konsolowej, zmień konfigurację kompilacji na pasku narzędzi z Debuguj na Wydanie.

default Visual Studio toolbar with release highlighted

Po naciśnięciu klawisza F5 lub wybraniu pozycji Kompiluj rozwiązanie z menu Kompilacja program Visual Studio kompiluje wersję wydania aplikacji. Można ją przetestować tak, jak w przypadku wersji debugowania.

Następne kroki

W tym samouczku użyto narzędzi debugowania programu Visual Studio. W następnym samouczku opublikujesz wdrożoną wersję aplikacji.

W tym samouczku przedstawiono narzędzia debugowania dostępne w programie Visual Studio.

Ważne

Wszystkie skróty klawiaturowe są oparte na wartościach domyślnych programu Visual Studio. Skróty klawiaturowe mogą się różnić, aby uzyskać więcej informacji, zobacz Skróty klawiaturowe w programie Visual Studio.

Wymagania wstępne

Korzystanie z konfiguracji kompilacji debugowania

Debugowanie i wydawanie to wbudowane konfiguracje kompilacji programu Visual Studio. Konfiguracja kompilacji debugowania służy do debugowania i konfiguracji wydania dla końcowej dystrybucji wydania.

W konfiguracji debugowania program kompiluje pełne symboliczne informacje debugowania i brak optymalizacji. Optymalizacja komplikuje debugowanie, ponieważ relacja między kodem źródłowym i wygenerowanymi instrukcjami jest bardziej złożona. Konfiguracja wydania programu nie zawiera żadnych symbolicznych informacji debugowania i jest w pełni zoptymalizowana.

Domyślnie program Visual Studio używa konfiguracji kompilacji debugowania, więc nie trzeba jej zmieniać przed debugowaniem.

  1. Uruchom program Visual Studio.

  2. Otwórz projekt utworzony w sekcji Tworzenie aplikacji konsolowej .NET przy użyciu programu Visual Studio.

    Bieżąca konfiguracja kompilacji jest wyświetlana na pasku narzędzi. Na poniższym obrazie paska narzędzi pokazano, że program Visual Studio jest skonfigurowany do kompilowania wersji debugowania aplikacji:

    Visual Studio toolbar with debug highlighted

Ustawianie punktu przerwania

Punkt przerwania tymczasowo przerywa wykonywanie aplikacji przed wykonaniem wiersza z punktem przerwania.

  1. Ustaw punkt przerwania w wierszu, który wyświetla nazwę, datę i godzinę, klikając lewy margines okna kodu w tym wierszu. Lewy margines znajduje się po lewej stronie numerów wierszy. Inne sposoby ustawiania punktu przerwania to umieszczenie kursora w wierszu kodu, a następnie naciśnięcie klawisza F9 lub wybranie pozycji Przełącz>punkt przerwania na pasku menu.

    Jak pokazano na poniższej ilustracji, program Visual Studio wskazuje wiersz, w którym ustawiono punkt przerwania, wyróżniając go i wyświetlając czerwoną kropkę na lewym marginesie.

    Visual Studio Program window with breakpoint set

  2. Naciśnij klawisz F5 , aby uruchomić program w trybie debugowania. Innym sposobem rozpoczęcia debugowania jest wybranie opcji Debuguj>rozpocznij debugowanie z menu.

  3. Wprowadź ciąg w oknie konsoli, gdy program wyświetli monit o nazwę, a następnie naciśnij klawisz Enter.

  4. Wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed wykonaniem Console.WriteLine metody. W oknie Ustawienia lokalne są wyświetlane wartości zmiennych zdefiniowanych w aktualnie wykonywanej metodzie.

    Screenshot of a breakpoint in Visual Studio

Korzystanie z okna natychmiastowego

Okno Natychmiastowe umożliwia interakcję z aplikacją, którą debugujesz. Możesz interaktywnie zmienić wartość zmiennych, aby zobaczyć, jak ma to wpływ na program.

  1. Jeśli okno Natychmiastowe nie jest widoczne, wyświetl je, wybierając pozycję Debuguj>natychmiast systemu Windows.>

  2. Wprowadź name = "Gracie" w oknie Natychmiastowe i naciśnij klawisz Enter .

  3. Wprowadź currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() w oknie Natychmiastowe i naciśnij klawisz Enter .

    W oknie Natychmiastowy zostanie wyświetlona wartość zmiennej ciągu i właściwości DateTime wartości. Ponadto wartości zmiennych są aktualizowane w oknie Ustawienia lokalne .

    Locals and Immediate Windows in Visual Studio 2019

  4. Naciśnij klawisz F5 , aby kontynuować wykonywanie programu. Innym sposobem kontynuowania jest wybranie opcji Debuguj>kontynuuj z menu.

    Wartości wyświetlane w oknie konsoli odpowiadają zmianom wprowadzonych w oknie Natychmiastowy .

    Console window showing the entered values

  5. Naciśnij dowolny klawisz, aby zamknąć aplikację i zatrzymać debugowanie.

Ustawianie warunkowego punktu przerwania

Program wyświetla ciąg wprowadzony przez użytkownika. Co się stanie, jeśli użytkownik nic nie wprowadzi? Można to przetestować za pomocą przydatnej funkcji debugowania nazywanej warunkowym punktem przerwania.

  1. Kliknij prawym przyciskiem myszy czerwoną kropkę reprezentującą punkt przerwania. W menu kontekstowym wybierz pozycję Warunki , aby otworzyć okno dialogowe Ustawienia punktu przerwania. Wybierz pole warunki, jeśli nie jest jeszcze zaznaczone.

    Editor showing breakpoint settings panel - C#

  2. W polu Wyrażenie warunkowe wprowadź następujący kod, który pokazuje przykładowy kod, który testuje wartość x 5.

    string.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    Za każdym razem, gdy punkt przerwania zostanie trafiony, debuger wywołuje metodę String.IsNullOrEmpty(name) i przerywa działanie w tym wierszu tylko wtedy, gdy wywołanie metody zwraca truewartość .

    Zamiast wyrażenia warunkowego można określić liczbę trafień, która przerywa wykonywanie programu przed wykonaniem instrukcji określoną liczbę razy. Inną opcją jest określenie warunku filtru, który przerywa wykonywanie programu na podstawie takich atrybutów jak identyfikator wątku, nazwa procesu lub nazwa wątku.

  3. Wybierz pozycję Zamknij , aby zamknąć okno dialogowe.

  4. Uruchom program z debugowaniem, naciskając klawisz F5.

  5. W oknie konsoli naciśnij klawisz Enter po wyświetleniu monitu o wprowadzenie nazwy.

  6. Ponieważ określony warunek (name lub nullString.Empty) został spełniony, wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed wykonaniem Console.WriteLine metody.

  7. Wybierz okno Ustawienia lokalne, w którym są wyświetlane wartości zmiennych lokalnych dla aktualnie wykonywanej metody. W tym przypadku Main jest to metoda aktualnie wykonująca. Zwróć uwagę, że wartość zmiennej name to "", lub String.Empty.

  8. Upewnij się, że wartość jest pustym ciągiem, wprowadzając następującą instrukcję w oknie Natychmiastowy i naciskając klawisz Enter. Wynik to true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    Znak zapytania kieruje bezpośrednie okno, aby ocenić wyrażenie.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Naciśnij klawisz F5 , aby kontynuować wykonywanie programu.

  10. Naciśnij dowolny klawisz, aby zamknąć okno konsoli i zatrzymać debugowanie.

  11. Wyczyść punkt przerwania, klikając kropkę na lewym marginesie okna kodu. Inne sposoby wyczyszczenia punktu przerwania polegają na naciśnięciu klawisza F9 lub wybraniu pozycji Przełącz > punkt przerwania podczas wybierania wiersza kodu.

Przechodzenie przez program

Program Visual Studio umożliwia również wykonywanie kroków według linii przez program i monitorowanie jego wykonywania. Zazwyczaj należy ustawić punkt przerwania i śledzić przepływ programu przez niewielką część kodu programu. Ponieważ ten program jest mały, można przejść przez cały program.

  1. Wybierz pozycję Debuguj>krok do. Innym sposobem debugowania jednej instrukcji naraz jest naciśnięcie klawisza F11.

    Program Visual Studio wyróżnia i wyświetla strzałkę obok następnego wiersza wykonywania.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    W tym momencie okno Ustawienia lokalne pokazuje, że tablica args jest pusta i namecurrentDate ma wartości domyślne. Ponadto program Visual Studio otworzył puste okno konsoli.

  2. Naciśnij klawisz F11. Program Visual Studio wyróżnia teraz następny wiersz wykonywania. Okno Ustawienia lokalne pozostaje niezmienione, a okno konsoli pozostaje puste.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Naciśnij klawisz F11. Program Visual Studio wyróżnia instrukcję zawierającą przypisanie zmiennej name . W oknie Ustawienia lokalne jest wyświetlana nullname wartość , a w oknie konsoli zostanie wyświetlony ciąg "Jaka jest Twoja nazwa?".

  4. Odpowiedz na monit, wprowadzając ciąg w oknie konsoli i naciskając klawisz Enter. Konsola nie odpowiada, a wprowadzony ciąg nie jest wyświetlany w oknie konsoli, ale Console.ReadLine metoda będzie mimo to przechwytywać dane wejściowe.

  5. Naciśnij klawisz F11. Program Visual Studio wyróżnia instrukcję zawierającą przypisanie zmiennej currentDate . W oknie Ustawienia lokalne jest wyświetlana wartość zwrócona przez wywołanie Console.ReadLine metody . W oknie konsoli zostanie również wyświetlony ciąg wprowadzony w wierszu polecenia.

  6. Naciśnij klawisz F11. W oknie Ustawienia lokalne jest wyświetlana wartość currentDate zmiennej po przypisaniu z DateTime.Now właściwości . Okno konsoli pozostaje niezmienione.

  7. Naciśnij klawisz F11. Program Visual Studio wywołuje metodę Console.WriteLine(String, Object, Object) . W oknie konsoli zostanie wyświetlony sformatowany ciąg.

  8. Wybierz pozycję Debuguj>, aby wyjść. Innym sposobem zatrzymania wykonywania krok po kroku jest naciśnięcie klawisza Shift+F11.

    W oknie konsoli zostanie wyświetlony komunikat i zaczeka na naciśnięcie klawisza.

  9. Naciśnij dowolny klawisz, aby zamknąć okno konsoli i zatrzymać debugowanie.

Korzystanie z konfiguracji kompilacji wydania

Po przetestowaniu wersji debugowania aplikacji należy również skompilować i przetestować wersję wydania. Wersja wydania zawiera optymalizacje kompilatora, które czasami negatywnie wpływają na zachowanie aplikacji. Na przykład optymalizacje kompilatora, które mają na celu poprawę wydajności, mogą tworzyć warunki wyścigu w aplikacjach wielowątkowymi.

Aby skompilować i przetestować wersję wydania aplikacji konsolowej, zmień konfigurację kompilacji na pasku narzędzi z Debuguj na Wydanie.

default Visual Studio toolbar with release highlighted

Po naciśnięciu klawisza F5 lub wybraniu pozycji Kompiluj rozwiązanie z menu Kompilacja program Visual Studio kompiluje wersję wydania aplikacji. Można ją przetestować tak, jak w przypadku wersji debugowania.

Następne kroki

W tym samouczku użyto narzędzi debugowania programu Visual Studio. W następnym samouczku opublikujesz wdrożoną wersję aplikacji.

W tym samouczku przedstawiono narzędzia debugowania dostępne w programie Visual Studio.

Wymagania wstępne

Korzystanie z konfiguracji kompilacji debugowania

Debugowanie i wydawanie to wbudowane konfiguracje kompilacji programu Visual Studio. Konfiguracja kompilacji debugowania służy do debugowania i konfiguracji wydania dla końcowej dystrybucji wydania.

W konfiguracji debugowania program kompiluje pełne symboliczne informacje debugowania i brak optymalizacji. Optymalizacja komplikuje debugowanie, ponieważ relacja między kodem źródłowym i wygenerowanymi instrukcjami jest bardziej złożona. Konfiguracja wydania programu nie zawiera żadnych symbolicznych informacji debugowania i jest w pełni zoptymalizowana.

Domyślnie program Visual Studio używa konfiguracji kompilacji debugowania, więc nie trzeba jej zmieniać przed debugowaniem.

  1. Uruchom program Visual Studio.

  2. Otwórz projekt utworzony w sekcji Tworzenie aplikacji konsolowej .NET przy użyciu programu Visual Studio.

    Bieżąca konfiguracja kompilacji jest wyświetlana na pasku narzędzi. Na poniższym obrazie paska narzędzi pokazano, że program Visual Studio jest skonfigurowany do kompilowania wersji debugowania aplikacji:

    Visual Studio toolbar with debug highlighted

Ustawianie punktu przerwania

Punkt przerwania tymczasowo przerywa wykonywanie aplikacji przed wykonaniem wiersza z punktem przerwania.

  1. Ustaw punkt przerwania w wierszu, który wyświetla nazwę, datę i godzinę, klikając lewy margines okna kodu w tym wierszu. Lewy margines znajduje się po lewej stronie numerów wierszy. Inne sposoby ustawiania punktu przerwania to umieszczenie kursora w wierszu kodu, a następnie naciśnięcie klawisza F9 lub wybranie pozycji Przełącz>punkt przerwania na pasku menu.

    Jak pokazano na poniższej ilustracji, program Visual Studio wskazuje wiersz, w którym ustawiono punkt przerwania, wyróżniając go i wyświetlając czerwoną kropkę na lewym marginesie.

    Visual Studio Program window with breakpoint set

  2. Naciśnij klawisz F5 , aby uruchomić program w trybie debugowania. Innym sposobem rozpoczęcia debugowania jest wybranie opcji Debuguj>rozpocznij debugowanie z menu.

  3. Wprowadź ciąg w oknie konsoli, gdy program wyświetli monit o nazwę, a następnie naciśnij klawisz Enter.

  4. Wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed wykonaniem Console.WriteLine metody. W oknie Ustawienia lokalne są wyświetlane wartości zmiennych zdefiniowanych w aktualnie wykonywanej metodzie.

    Screenshot of a breakpoint in Visual Studio

Korzystanie z okna natychmiastowego

Okno Natychmiastowe umożliwia interakcję z aplikacją, którą debugujesz. Możesz interaktywnie zmienić wartość zmiennych, aby zobaczyć, jak ma to wpływ na program.

  1. Jeśli okno Natychmiastowe nie jest widoczne, wyświetl je, wybierając pozycję Debuguj>natychmiast systemu Windows.>

  2. Wprowadź name = "Gracie" w oknie Natychmiastowe i naciśnij klawisz Enter .

  3. Wprowadź currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() w oknie Natychmiastowe i naciśnij klawisz Enter .

    W oknie Natychmiastowy zostanie wyświetlona wartość zmiennej ciągu i właściwości DateTime wartości. Ponadto wartości zmiennych są aktualizowane w oknie Ustawienia lokalne .

    Locals and Immediate Windows in Visual Studio 2019

  4. Naciśnij klawisz F5 , aby kontynuować wykonywanie programu. Innym sposobem kontynuowania jest wybranie opcji Debuguj>kontynuuj z menu.

    Wartości wyświetlane w oknie konsoli odpowiadają zmianom wprowadzonych w oknie Natychmiastowy .

    Console window showing the entered values

  5. Naciśnij dowolny klawisz, aby zamknąć aplikację i zatrzymać debugowanie.

Ustawianie warunkowego punktu przerwania

Program wyświetla ciąg wprowadzony przez użytkownika. Co się stanie, jeśli użytkownik nic nie wprowadzi? Można to przetestować za pomocą przydatnej funkcji debugowania nazywanej warunkowym punktem przerwania.

  1. Kliknij prawym przyciskiem myszy czerwoną kropkę reprezentującą punkt przerwania. W menu kontekstowym wybierz pozycję Warunki , aby otworzyć okno dialogowe Ustawienia punktu przerwania. Wybierz pole warunki, jeśli nie jest jeszcze zaznaczone.

    Editor showing breakpoint settings panel - C#

  2. W polu Wyrażenie warunkowe wprowadź następujący kod, który pokazuje przykładowy kod, który testuje wartość x 5.

    String.IsNullOrEmpty(name)
    
    String.IsNullOrEmpty(name)
    

    Za każdym razem, gdy punkt przerwania zostanie trafiony, debuger wywołuje metodę String.IsNullOrEmpty(name) i przerywa działanie w tym wierszu tylko wtedy, gdy wywołanie metody zwraca truewartość .

    Zamiast wyrażenia warunkowego można określić liczbę trafień, która przerywa wykonywanie programu przed wykonaniem instrukcji określoną liczbę razy. Inną opcją jest określenie warunku filtru, który przerywa wykonywanie programu na podstawie takich atrybutów jak identyfikator wątku, nazwa procesu lub nazwa wątku.

  3. Wybierz pozycję Zamknij , aby zamknąć okno dialogowe.

  4. Uruchom program z debugowaniem, naciskając klawisz F5.

  5. W oknie konsoli naciśnij klawisz Enter po wyświetleniu monitu o wprowadzenie nazwy.

  6. Ponieważ określony warunek (name lub nullString.Empty) został spełniony, wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed wykonaniem Console.WriteLine metody.

  7. Wybierz okno Ustawienia lokalne, w którym są wyświetlane wartości zmiennych lokalnych dla aktualnie wykonywanej metody. W tym przypadku Main jest to metoda aktualnie wykonująca. Zwróć uwagę, że wartość zmiennej name to "", lub String.Empty.

  8. Upewnij się, że wartość jest pustym ciągiem, wprowadzając następującą instrukcję w oknie Natychmiastowy i naciskając klawisz Enter. Wynik to true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    Znak zapytania kieruje bezpośrednie okno, aby ocenić wyrażenie.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Naciśnij klawisz F5 , aby kontynuować wykonywanie programu.

  10. Naciśnij dowolny klawisz, aby zamknąć okno konsoli i zatrzymać debugowanie.

  11. Wyczyść punkt przerwania, klikając kropkę na lewym marginesie okna kodu. Inne sposoby wyczyszczenia punktu przerwania polegają na naciśnięciu klawisza F9 lub wybraniu pozycji Przełącz > punkt przerwania podczas wybierania wiersza kodu.

Przechodzenie przez program

Program Visual Studio umożliwia również wykonywanie kroków według linii przez program i monitorowanie jego wykonywania. Zazwyczaj należy ustawić punkt przerwania i śledzić przepływ programu przez niewielką część kodu programu. Ponieważ ten program jest mały, można przejść przez cały program. Chociaż obecnie nie jest debugowanie, a fokus dotyczy programu Visual Studio:

  1. Wybierz pozycję Debuguj>krok do. Innym sposobem debugowania jednej instrukcji naraz jest naciśnięcie klawisza F11.

    Program Visual Studio wyróżnia i wyświetla strzałkę obok następnego wiersza wykonywania.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    W tym momencie okno Ustawienia lokalne pokazuje, że tablica args jest pusta i namecurrentDate ma wartości domyślne. Ponadto program Visual Studio otworzył puste okno konsoli.

  2. Naciśnij klawisz F11. Program Visual Studio wyróżnia teraz następny wiersz wykonywania. Okno Ustawienia lokalne pozostaje niezmienione, a okno konsoli pozostaje puste.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Naciśnij klawisz F11. Program Visual Studio wyróżnia instrukcję zawierającą przypisanie zmiennej name . W oknie Ustawienia lokalne jest wyświetlana nullname wartość , a w oknie konsoli zostanie wyświetlony ciąg "Jaka jest Twoja nazwa?".

  4. Odpowiedz na monit, wprowadzając ciąg w oknie konsoli i naciskając klawisz Enter. Konsola nie odpowiada, a wprowadzony ciąg nie jest wyświetlany w oknie konsoli, ale Console.ReadLine metoda będzie mimo to przechwytywać dane wejściowe.

  5. Naciśnij klawisz F11. Program Visual Studio wyróżnia instrukcję zawierającą przypisanie zmiennej currentDate . W oknie Ustawienia lokalne jest wyświetlana wartość zwrócona przez wywołanie Console.ReadLine metody . W oknie konsoli zostanie również wyświetlony ciąg wprowadzony w wierszu polecenia.

  6. Naciśnij klawisz F11. W oknie Ustawienia lokalne jest wyświetlana wartość currentDate zmiennej po przypisaniu z DateTime.Now właściwości . Okno konsoli pozostaje niezmienione.

  7. Naciśnij klawisz F11. Program Visual Studio wywołuje metodę Console.WriteLine(String, Object, Object) . W oknie konsoli zostanie wyświetlony sformatowany ciąg.

  8. Wybierz pozycję Debuguj>, aby wyjść. Innym sposobem zatrzymania wykonywania krok po kroku jest naciśnięcie klawisza Shift+F11.

    W oknie konsoli zostanie wyświetlony komunikat i zaczeka na naciśnięcie klawisza.

  9. Naciśnij dowolny klawisz, aby zamknąć okno konsoli i zatrzymać debugowanie.

Korzystanie z konfiguracji kompilacji wydania

Po przetestowaniu wersji debugowania aplikacji należy również skompilować i przetestować wersję wydania. Wersja wydania zawiera optymalizacje kompilatora, które czasami negatywnie wpływają na zachowanie aplikacji. Na przykład optymalizacje kompilatora, które mają na celu poprawę wydajności, mogą tworzyć warunki wyścigu w aplikacjach wielowątkowymi.

Aby skompilować i przetestować wersję wydania aplikacji konsolowej, zmień konfigurację kompilacji na pasku narzędzi z Debuguj na Wydanie.

default Visual Studio toolbar with release highlighted

Po naciśnięciu klawisza F5 lub wybraniu pozycji Kompiluj rozwiązanie z menu Kompilacja program Visual Studio kompiluje wersję wydania aplikacji. Można ją przetestować tak, jak w przypadku wersji debugowania.

Następne kroki

W tym samouczku użyto narzędzi debugowania programu Visual Studio. W następnym samouczku opublikujesz wdrożoną wersję aplikacji.