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

W tym samouczku przedstawiono narzędzia debugowania dostępne w programie Visual Studio Code do pracy z aplikacjami platformy .NET.

Wymagania wstępne

Korzystanie z konfiguracji kompilacji debugowania

Debugowanie i wydanie to . Wbudowane konfiguracje kompilacji platformy NET. 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 ustawienia uruchamiania programu Visual Studio Code używają konfiguracji kompilacji debugowania, więc nie trzeba jej zmieniać przed debugowaniem.

  1. Uruchom program Visual Studio Code.

  2. Otwórz folder projektu utworzonego w sekcji Tworzenie aplikacji konsolowej platformy .NET przy użyciu programu Visual Studio Code.

Ustawianie punktu przerwania

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

  1. Otwórz plik Program.cs.

  2. Ustaw punkt przerwania w wierszu, który wyświetla nazwę, datę i godzinę, klikając lewy margines okna kodu. Lewy margines znajduje się po lewej stronie numerów wierszy. Inne sposoby ustawiania punktu przerwania polegają na naciśnięciu klawisza F9 lub wybraniu pozycji Uruchom>przełącz punkt przerwania z menu podczas wybierania wiersza kodu.

    Program Visual Studio Code wskazuje wiersz, w którym ustawiono punkt przerwania, wyświetlając czerwoną kropkę na lewym marginesie.

    Breakpoint set

Konfigurowanie dla danych wejściowych terminalu

Punkt przerwania znajduje się po wywołaniu Console.ReadLine metody. Konsola debugowania nie akceptuje danych wejściowych terminalu dla uruchomionego programu. Aby obsłużyć dane wejściowe terminalu podczas debugowania, możesz użyć zintegrowanego terminalu (jednego z okien programu Visual Studio Code) lub zewnętrznego terminalu. Na potrzeby tego samouczka użyjesz zintegrowanego terminalu.

  1. Folder projektu zawiera folder .vscode . Otwórz plik launch.json, który znajduje się w folderze .vscode.

  2. W pliku launch.json zmień console ustawienie z internalConsole na integratedTerminal:

    "console": "integratedTerminal",
    
  3. Zapisz zmiany.

Rozpocznij debugowanie

  1. Otwórz widok Debuguj, wybierając ikonę Debugowanie w menu po lewej stronie.

    Open the Debug tab in Visual Studio Code

  2. Wybierz zieloną strzałkę w górnej części okienka obok pozycji .NET Core Launch (konsola). Inne sposoby uruchamiania programu w trybie debugowania to naciśnięcie klawisza F5 lub wybranie polecenia Uruchom rozpocznij>debugowanie z menu.

    Start debugging

  3. Wybierz kartę Terminal, aby wyświetlić monit "Jaka jest Twoja nazwa?" wyświetlany przed oczekiwaniem na odpowiedź.

    Select the Terminal tab

  4. Wprowadź ciąg w oknie Terminal w odpowiedzi na monit o nazwę, a następnie naciśnij klawisz Enter.

    Wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed uruchomieniem Console.WriteLine metody. Sekcja Ustawienia lokalne w oknie Zmienne zawiera wartości zmiennych zdefiniowanych w aktualnie uruchomionej metodzie.

    Breakpoint hit, showing Locals

Korzystanie z konsoli debugowania

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

  1. Wybierz kartę Konsola debugowania.

  2. Wprowadź name = "Gracie" w wierszu polecenia w dolnej części okna Konsola debugowania i naciśnij klawisz Enter .

    Change variable values

  3. Wprowadź currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() w dolnej części okna Konsola debugowania i naciśnij klawisz Enter .

    W oknie Zmienne są wyświetlane nowe wartości name zmiennych i currentDate .

  4. Kontynuuj wykonywanie programu, wybierając przycisk Kontynuuj na pasku narzędzi. Innym sposobem kontynuowania jest naciśnięcie klawisza F5.

    Continue debugging

  5. Ponownie wybierz kartę Terminal .

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

    Terminal showing the entered values

  6. 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 (kliknij klawisze Ctrl w systemie macOS) na czerwonej kropki reprezentującej punkt przerwania. W menu kontekstowym wybierz pozycję Edytuj punkt przerwania, aby otworzyć okno dialogowe umożliwiające wprowadzenie wyrażenia warunkowego.

    Breakpoint context menu

  2. Wybierz Expression z listy rozwijanej, wprowadź następujące wyrażenie warunkowe i naciśnij klawisz Enter.

    String.IsNullOrEmpty(name)
    

    Enter a conditional expression

    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 uruchomieniem 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. Uruchom program z debugowaniem, naciskając klawisz F5.

  4. Na karcie Terminal naciśnij klawisz Enter po wyświetleniu monitu o wprowadzenie nazwy.

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

    Okno Zmienne pokazuje, że wartość zmiennej name to "", lub String.Empty.

  5. Potwierdź, że wartość jest pustym ciągiem, wprowadzając następującą instrukcję w wierszu polecenia konsoli debugowania i naciskając klawisz Enter. Wynik to true.

    name == String.Empty
    
  6. Wybierz przycisk Kontynuuj na pasku narzędzi, aby kontynuować wykonywanie programu.

  7. Wybierz kartę Terminal i naciśnij dowolny klawisz, aby zamknąć program i zatrzymać debugowanie.

  8. 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 Uruchom > przełącz punkt przerwania z menu podczas wybierania wiersza kodu.

  9. Jeśli zostanie wyświetlone ostrzeżenie, że warunek punktu przerwania zostanie utracony, wybierz pozycję Usuń punkt przerwania.

Przechodzenie przez program

Program Visual Studio Code umożliwia również wykonywanie krok po kroku 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. Ustaw punkt przerwania na otwierającym nawiasie klamrowym Main metody .

  2. Naciśnij klawisz F5, aby uruchomić debugowanie.

    Program Visual Studio Code wyróżnia wiersz punktu przerwania.

    W tym momencie okno Zmienne pokazuje, że tablica args jest pusta i namecurrentDate ma wartości domyślne.

  3. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Step-Into button

    Program Visual Studio Code wyróżnia następny wiersz.

  4. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio Code uruchamia Console.WriteLine element dla monitu o nazwę i wyróżnia następny wiersz wykonywania. Następny wiersz jest elementem Console.ReadLine dla elementu name. Okno Zmienne jest niezmienione, a karta Terminal zawiera monit "Jaka jest Twoja nazwa?".

  5. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio wyróżnia przypisanie zmiennej name . Okno Zmienne pokazuje, że name nadal nulljest to .

  6. Odpowiedz na monit, wprowadzając ciąg na karcie Terminal i naciskając klawisz Enter.

    Karta Terminal może nie wyświetlać wprowadzonego ciągu podczas jego wprowadzania, ale Console.ReadLine metoda przechwytuje dane wejściowe.

  7. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio Code wyróżnia przypisanie zmiennej currentDate . W oknie Zmienne jest wyświetlana wartość zwrócona przez wywołanie Console.ReadLine metody . Na karcie Terminal zostanie wyświetlony ciąg wprowadzony w wierszu polecenia.

  8. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    W oknie Zmienne jest wyświetlana wartość currentDate zmiennej po przypisaniu z DateTime.Now właściwości .

  9. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

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

  10. Wybierz pozycję Uruchom>wyjście lub naciśnij klawisze Shift+F11.

    Step-Out button

  11. Wybierz kartę Terminal .

    W terminalu zostanie wyświetlony komunikat "Naciśnij dowolny klawisz, aby zakończyć..."

  12. Naciśnij dowolny klawisz, aby zamknąć program.

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 mogą mieć wpływ 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, otwórz terminal i uruchom następujące polecenie:

dotnet run --configuration Release

Dodatkowe zasoby

Następne kroki

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

W tym samouczku przedstawiono narzędzia debugowania dostępne w programie Visual Studio Code do pracy z aplikacjami platformy .NET.

Wymagania wstępne

Korzystanie z konfiguracji kompilacji debugowania

Debugowanie i wydanie to . Wbudowane konfiguracje kompilacji platformy NET. 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 ustawienia uruchamiania programu Visual Studio Code używają konfiguracji kompilacji debugowania, więc nie trzeba jej zmieniać przed debugowaniem.

  1. Uruchom program Visual Studio Code.

  2. Otwórz folder projektu utworzonego w sekcji Tworzenie aplikacji konsolowej platformy .NET przy użyciu programu Visual Studio Code.

Ustawianie punktu przerwania

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

  1. Otwórz plik Program.cs.

  2. Ustaw punkt przerwania w wierszu, który wyświetla nazwę, datę i godzinę, klikając lewy margines okna kodu. Lewy margines znajduje się po lewej stronie numerów wierszy. Inne sposoby ustawiania punktu przerwania polegają na naciśnięciu klawisza F9 lub wybraniu pozycji Uruchom>przełącz punkt przerwania z menu podczas wybierania wiersza kodu.

    Program Visual Studio Code wskazuje wiersz, w którym ustawiono punkt przerwania, wyświetlając czerwoną kropkę na lewym marginesie.

    Breakpoint set

Konfigurowanie dla danych wejściowych terminalu

Punkt przerwania znajduje się po wywołaniu Console.ReadLine metody. Konsola debugowania nie akceptuje danych wejściowych terminalu dla uruchomionego programu. Aby obsłużyć dane wejściowe terminalu podczas debugowania, możesz użyć zintegrowanego terminalu (jednego z okien programu Visual Studio Code) lub zewnętrznego terminalu. Na potrzeby tego samouczka użyjesz zintegrowanego terminalu.

  1. Folder projektu zawiera folder .vscode . Otwórz plik launch.json, który znajduje się w folderze .vscode.

  2. W pliku launch.json zmień console ustawienie z internalConsole na integratedTerminal:

    "console": "integratedTerminal",
    
  3. Zapisz zmiany.

Rozpocznij debugowanie

  1. Otwórz widok Debuguj, wybierając ikonę Debugowanie w menu po lewej stronie.

    Open the Debug tab in Visual Studio Code

  2. Wybierz zieloną strzałkę w górnej części okienka obok pozycji .NET Core Launch (konsola). Inne sposoby uruchamiania programu w trybie debugowania to naciśnięcie klawisza F5 lub wybranie polecenia Uruchom rozpocznij>debugowanie z menu.

    Start debugging

  3. Wybierz kartę Terminal, aby wyświetlić monit "Jaka jest Twoja nazwa?" wyświetlany przed oczekiwaniem na odpowiedź.

    Select the Terminal tab

  4. Wprowadź ciąg w oknie Terminal w odpowiedzi na monit o nazwę, a następnie naciśnij klawisz Enter.

    Wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed uruchomieniem Console.WriteLine metody. Sekcja Ustawienia lokalne w oknie Zmienne zawiera wartości zmiennych zdefiniowanych w aktualnie uruchomionej metodzie.

    Breakpoint hit, showing Locals

Korzystanie z konsoli debugowania

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

  1. Wybierz kartę Konsola debugowania.

  2. Wprowadź name = "Gracie" w wierszu polecenia w dolnej części okna Konsola debugowania i naciśnij klawisz Enter .

    Change variable values

  3. Wprowadź currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() w dolnej części okna Konsola debugowania i naciśnij klawisz Enter .

    W oknie Zmienne są wyświetlane nowe wartości name zmiennych i currentDate .

  4. Kontynuuj wykonywanie programu, wybierając przycisk Kontynuuj na pasku narzędzi. Innym sposobem kontynuowania jest naciśnięcie klawisza F5.

    Continue debugging

  5. Ponownie wybierz kartę Terminal .

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

    Terminal showing the entered values

  6. 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 (kliknij klawisze Ctrl w systemie macOS) na czerwonej kropki reprezentującej punkt przerwania. W menu kontekstowym wybierz pozycję Edytuj punkt przerwania, aby otworzyć okno dialogowe umożliwiające wprowadzenie wyrażenia warunkowego.

    Breakpoint context menu

  2. Wybierz Expression z listy rozwijanej, wprowadź następujące wyrażenie warunkowe i naciśnij klawisz Enter.

    String.IsNullOrEmpty(name)
    

    Enter a conditional expression

    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 uruchomieniem 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. Uruchom program z debugowaniem, naciskając klawisz F5.

  4. Na karcie Terminal naciśnij klawisz Enter po wyświetleniu monitu o wprowadzenie nazwy.

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

    Okno Zmienne pokazuje, że wartość zmiennej name to "", lub String.Empty.

  5. Potwierdź, że wartość jest pustym ciągiem, wprowadzając następującą instrukcję w wierszu polecenia konsoli debugowania i naciskając klawisz Enter. Wynik to true.

    name == String.Empty
    
  6. Wybierz przycisk Kontynuuj na pasku narzędzi, aby kontynuować wykonywanie programu.

  7. Wybierz kartę Terminal i naciśnij dowolny klawisz, aby zamknąć program i zatrzymać debugowanie.

  8. 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 Uruchom > przełącz punkt przerwania z menu podczas wybierania wiersza kodu.

  9. Jeśli zostanie wyświetlone ostrzeżenie, że warunek punktu przerwania zostanie utracony, wybierz pozycję Usuń punkt przerwania.

Przechodzenie przez program

Program Visual Studio Code umożliwia również wykonywanie krok po kroku 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. Ustaw punkt przerwania na otwierającym nawiasie klamrowym Main metody .

  2. Naciśnij klawisz F5, aby uruchomić debugowanie.

    Program Visual Studio Code wyróżnia wiersz punktu przerwania.

    W tym momencie okno Zmienne pokazuje, że tablica args jest pusta i namecurrentDate ma wartości domyślne.

  3. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Step-Into button

    Program Visual Studio Code wyróżnia następny wiersz.

  4. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio Code uruchamia Console.WriteLine element dla monitu o nazwę i wyróżnia następny wiersz wykonywania. Następny wiersz jest elementem Console.ReadLine dla elementu name. Okno Zmienne jest niezmienione, a karta Terminal zawiera monit "Jaka jest Twoja nazwa?".

  5. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio wyróżnia przypisanie zmiennej name . Okno Zmienne pokazuje, że name nadal nulljest to .

  6. Odpowiedz na monit, wprowadzając ciąg na karcie Terminal i naciskając klawisz Enter.

    Karta Terminal może nie wyświetlać wprowadzonego ciągu podczas jego wprowadzania, ale Console.ReadLine metoda przechwytuje dane wejściowe.

  7. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio Code wyróżnia przypisanie zmiennej currentDate . W oknie Zmienne jest wyświetlana wartość zwrócona przez wywołanie Console.ReadLine metody . Na karcie Terminal zostanie wyświetlony ciąg wprowadzony w wierszu polecenia.

  8. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    W oknie Zmienne jest wyświetlana wartość currentDate zmiennej po przypisaniu z DateTime.Now właściwości .

  9. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

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

  10. Wybierz pozycję Uruchom>wyjście lub naciśnij klawisze Shift+F11.

    Step-Out button

  11. Wybierz kartę Terminal .

    W terminalu zostanie wyświetlony komunikat "Naciśnij dowolny klawisz, aby zakończyć..."

  12. Naciśnij dowolny klawisz, aby zamknąć program.

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 mogą mieć wpływ 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, otwórz terminal i uruchom następujące polecenie:

dotnet run --configuration Release

Dodatkowe zasoby

Następne kroki

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

W tym samouczku przedstawiono narzędzia debugowania dostępne w programie Visual Studio Code do pracy z aplikacjami platformy .NET.

Wymagania wstępne

Korzystanie z konfiguracji kompilacji debugowania

Debugowanie i wydanie to . Wbudowane konfiguracje kompilacji platformy NET. 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 ustawienia uruchamiania programu Visual Studio Code używają konfiguracji kompilacji debugowania, więc nie trzeba jej zmieniać przed debugowaniem.

  1. Uruchom program Visual Studio Code.

  2. Otwórz folder projektu utworzonego w sekcji Tworzenie aplikacji konsolowej platformy .NET przy użyciu programu Visual Studio Code.

Ustawianie punktu przerwania

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

  1. Otwórz plik Program.cs.

  2. Ustaw punkt przerwania w wierszu, który wyświetla nazwę, datę i godzinę, klikając lewy margines okna kodu. Lewy margines znajduje się po lewej stronie numerów wierszy. Inne sposoby ustawiania punktu przerwania polegają na naciśnięciu klawisza F9 lub wybraniu pozycji Uruchom>przełącz punkt przerwania z menu podczas wybierania wiersza kodu.

    Program Visual Studio Code wskazuje wiersz, w którym ustawiono punkt przerwania, wyświetlając czerwoną kropkę na lewym marginesie.

    Breakpoint set

Konfigurowanie dla danych wejściowych terminalu

Punkt przerwania znajduje się po wywołaniu Console.ReadLine metody. Konsola debugowania nie akceptuje danych wejściowych terminalu dla uruchomionego programu. Aby obsłużyć dane wejściowe terminalu podczas debugowania, możesz użyć zintegrowanego terminalu (jednego z okien programu Visual Studio Code) lub zewnętrznego terminalu. Na potrzeby tego samouczka użyjesz zintegrowanego terminalu.

  1. Otwórz plik .vscode/launch.json.

  2. console Zmień ustawienie z internalConsole na integratedTerminal:

    "console": "integratedTerminal",
    
  3. Zapisz zmiany.

Rozpocznij debugowanie

  1. Otwórz widok Debuguj, wybierając ikonę Debugowanie w menu po lewej stronie.

    Open the Debug tab in Visual Studio Code

  2. Wybierz zieloną strzałkę w górnej części okienka obok pozycji .NET Core Launch (konsola). Inne sposoby uruchamiania programu w trybie debugowania to naciśnięcie klawisza F5 lub wybranie polecenia Uruchom rozpocznij>debugowanie z menu.

    Start debugging

  3. Wybierz kartę Terminal, aby wyświetlić monit "Jaka jest Twoja nazwa?" wyświetlany przed oczekiwaniem na odpowiedź.

    Select the Terminal tab

  4. Wprowadź ciąg w oknie Terminal w odpowiedzi na monit o nazwę, a następnie naciśnij klawisz Enter.

    Wykonanie programu zatrzymuje się po osiągnięciu punktu przerwania i przed uruchomieniem Console.WriteLine metody. Sekcja Ustawienia lokalne w oknie Zmienne zawiera wartości zmiennych zdefiniowanych w aktualnie uruchomionej metodzie.

    Breakpoint hit, showing Locals

Korzystanie z konsoli debugowania

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

  1. Wybierz kartę Konsola debugowania.

  2. Wprowadź name = "Gracie" w wierszu polecenia w dolnej części okna Konsola debugowania i naciśnij klawisz Enter .

    Change variable values

  3. Wprowadź currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() w dolnej części okna Konsola debugowania i naciśnij klawisz Enter .

    W oknie Zmienne są wyświetlane nowe wartości name zmiennych i currentDate .

  4. Kontynuuj wykonywanie programu, wybierając przycisk Kontynuuj na pasku narzędzi. Innym sposobem kontynuowania jest naciśnięcie klawisza F5.

    Continue debugging

  5. Ponownie wybierz kartę Terminal .

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

    Terminal showing the entered values

  6. 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 (kliknij klawisze Ctrl w systemie macOS) na czerwonej kropki reprezentującej punkt przerwania. W menu kontekstowym wybierz pozycję Edytuj punkt przerwania, aby otworzyć okno dialogowe umożliwiające wprowadzenie wyrażenia warunkowego.

    Breakpoint context menu

  2. Wybierz Expression z listy rozwijanej, wprowadź następujące wyrażenie warunkowe i naciśnij klawisz Enter.

    String.IsNullOrEmpty(name)
    

    Enter a conditional expression

    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 uruchomieniem 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. Uruchom program z debugowaniem, naciskając klawisz F5.

  4. Na karcie Terminal naciśnij klawisz Enter po wyświetleniu monitu o wprowadzenie nazwy.

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

    Okno Zmienne pokazuje, że wartość zmiennej name to "", lub String.Empty.

  5. Potwierdź, że wartość jest pustym ciągiem, wprowadzając następującą instrukcję w wierszu polecenia konsoli debugowania i naciskając klawisz Enter. Wynik to true.

    name == String.Empty
    
  6. Wybierz przycisk Kontynuuj na pasku narzędzi, aby kontynuować wykonywanie programu.

  7. Wybierz kartę Terminal i naciśnij dowolny klawisz, aby zamknąć program i zatrzymać debugowanie.

  8. 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 Uruchom > przełącz punkt przerwania z menu podczas wybierania wiersza kodu.

  9. Jeśli zostanie wyświetlone ostrzeżenie, że warunek punktu przerwania zostanie utracony, wybierz pozycję Usuń punkt przerwania.

Przechodzenie przez program

Program Visual Studio Code umożliwia również wykonywanie krok po kroku 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. Ustaw punkt przerwania na otwierającym nawiasie klamrowym Main metody .

  2. Naciśnij klawisz F5, aby uruchomić debugowanie.

    Program Visual Studio Code wyróżnia wiersz punktu przerwania.

    W tym momencie okno Zmienne pokazuje, że tablica args jest pusta i namecurrentDate ma wartości domyślne.

  3. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Step-Into button

    Program Visual Studio Code wyróżnia następny wiersz.

  4. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio Code uruchamia Console.WriteLine element dla monitu o nazwę i wyróżnia następny wiersz wykonywania. Następny wiersz jest elementem Console.ReadLine dla elementu name. Okno Zmienne jest niezmienione, a karta Terminal zawiera monit "Jaka jest Twoja nazwa?".

  5. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio wyróżnia przypisanie zmiennej name . Okno Zmienne zostało wyczyszczone.

  6. Odpowiedz na monit, wprowadzając ciąg na karcie Terminal i naciskając klawisz Enter.

    Karta Terminal może nie wyświetlać wprowadzonego ciągu podczas jego wprowadzania, ale Console.ReadLine metoda przechwytuje dane wejściowe.

    W oknie Zmienne jest wyświetlana wartość zwrócona przez wywołanie Console.ReadLine metody .

  7. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    Program Visual Studio Code wyróżnia przypisanie zmiennej currentDate . Na karcie Terminal zostanie wyświetlony ciąg wprowadzony w wierszu polecenia.

  8. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

    W oknie Zmienne jest wyświetlana wartość currentDate zmiennej po przypisaniu z DateTime.Now właściwości .

  9. Wybierz pozycję Uruchom>krok do lub naciśnij klawisz F11.

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

  10. Wybierz pozycję Uruchom>wyjście lub naciśnij klawisze Shift+F11.

    Step-Out button

  11. Wybierz kartę Terminal .

    W terminalu zostanie wyświetlony komunikat "Naciśnij dowolny klawisz, aby zakończyć..."

  12. Naciśnij dowolny klawisz, aby zamknąć program.

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 mogą mieć wpływ 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, otwórz terminal i uruchom następujące polecenie:

dotnet run --configuration Release

Dodatkowe zasoby

Następne kroki

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