Debugowanie kodu Python w usłudze Visual Studio

Visual Studio zapewnia kompleksowe środowisko debugowania dla Python. W tym artykule przedstawiono sposób dołączania debugera do uruchamiania procesów i oceniania wyrażeń w oknach obserwowanych i natychmiastowych . W debugerze można sprawdzić zmienne lokalne, używać punktów przerwania, wchodzić/wychodzić/przechodzić przez instrukcje, Ustawić Następną Instrukcję i nie tylko.

Informacje dotyczące debugowania specyficzne dla scenariusza można znaleźć w następujących artykułach:

Wymagania wstępne

Debuguj kod z projektem lub bez niego

Jeśli chcesz kontrolować środowisko i argumenty Python, najpierw utwórz projekt dla kodu. Projekt można utworzyć przy użyciu szablonu projektu Z istniejącego kodu Python. Aby uzyskać więcej informacji, zobacz Tworzenie projektu z istniejących plików kodu Python.

Nie potrzebujesz jednak pliku projektu ani rozwiązania w Visual Studio do debugowania kodu Python. Aby debugować kod w autonomicznym pliku Python, otwórz plik w Visual Studio i wybierz pozycję Debug>Start Debugowanie. Visual Studio uruchamia skrypt z globalnym środowiskiem domyślnym i bez argumentów. Następnie masz pełną obsługę debugowania kodu. Aby uzyskać więcej informacji, zobacz Python environments.

Eksplorowanie podstawowego debugowania

Podstawowy przepływ pracy debugowania obejmuje punkty przerwania ustawień, przechodzenie przez kod, inspekcję wartości i obsługę wyjątków. Możesz rozpocząć sesję debugowania, wybierając pozycję Debuguj>rozpocznij debugowanie lub używając skrótu klawiaturowego F5 . W przypadku projektu te działania uruchamiają plik startowy z aktywnym środowiskiem projektu oraz dowolnymi argumentami wiersza poleceń lub ścieżkami wyszukiwania określonymi dla Właściwości Projektu. Aby skonfigurować właściwości, zobacz Ustawianie opcji debugowania projektu.

Ustawianie pliku uruchamiania projektu

Plik startowy projektu jest wyświetlany pogrubioną czcionką w Eksplorator rozwiązań. Możesz wybrać plik, który ma być używany jako plik startowy.

  • Aby określić plik projektu jako plik startowy, kliknij go prawym przyciskiem myszy i wybierz polecenie Ustaw jako element startowy.

W programie Visual Studio 2017 w wersji 15.6 lub nowszej zostanie wyświetlony alert, jeśli nie masz określonego zestawu plików uruchamiania. Wcześniejsze wersje Visual Studio mogą otwierać okno Output z już uruchomionym interpreterem Pythona, lub okno Output może się krótko otworzyć i zaraz zamknąć.

Określanie aktywnego środowiska

Jeśli używasz pliku projektu, debuger zawsze rozpoczyna się od aktywnego środowiska Python dla projektu. Bieżące aktywne środowisko można zmienić. Aby uzyskać więcej informacji, zobacz Wybierz środowisko Python dla projektu.

Jeśli debugujesz autonomiczny plik kodu Python, Visual Studio uruchamia skrypt z globalnym środowiskiem domyślnym i bez argumentów.

Ustawianie punktów przerwania

Punkty przerwania zatrzymują wykonywanie kodu w oznaczonym punkcie, aby można było sprawdzić stan programu.

Niektóre punkty przerwania w Python mogą być zaskakujące dla deweloperów, którzy pracowali z innymi językami programowania. W Python cały plik jest kodem wykonywalnym, dlatego Python uruchamia plik, gdy jest ładowany do przetwarzania dowolnych definicji klasy najwyższego poziomu lub funkcji. Jeśli ustawisz punkt przerwania, może się okazać, że debuger przerywa w trakcie deklaracji klasy. To zachowanie jest poprawne, mimo że czasami jest zaskakujące.

  • Aby ustawić punkt przerwania, wybierz w lewym marginesie edytora kodu lub kliknij prawym przyciskiem myszy linię kodu i wybierz Punkt przerwania>Wstaw punkt przerwania. Czerwona kropka pojawia się w każdym wierszu z ustawionym punktem przerwania.

  • Aby usunąć punkt przerwania, wybierz czerwoną kropkę lub kliknij prawym przyciskiem myszy na wierszu kodu i wybierz pozycję Punkt przerwania>Usuń punkt przerwania. Możesz również wyłączyć punkt przerwania, wybierając czerwoną kropkę i wybierając pozycję Punkt przerwania>Wyłącz punkt przerwania.

    Screenshot pokazujący, jak wyłączyć punkt przerwania na lewym marginesie pliku kodu w pliku Visual Studio.

Ustawianie warunków i akcji

Można dostosować warunki wyzwalania punktu przerwania, takie jak przerwanie tylko wtedy, gdy zmienna jest ustawiona na określoną wartość lub zakres wartości.

  • Aby ustawić warunki, kliknij prawym przyciskiem myszy czerwoną kropkę punktu przerwania, wybierz pozycję Warunki. Zostanie otwarte okno dialogowe Ustawienia punktu przerwania .

    W oknie dialogowym można dodać wiele warunków i utworzyć wyrażenia warunkowe przy użyciu Python kodu. Aby uzyskać szczegółowe informacje na temat tej funkcji w Visual Studio, zobacz Breakpoint conditions.

  • Dostępne są również opcje ustawiania akcji dla punktu przerwania. Możesz utworzyć komunikat, aby zalogować się do okna Dane wyjściowe i opcjonalnie określić, aby kontynuować wykonywanie automatycznie.

    Rejestrowanie komunikatu powoduje utworzenie punktu śledzenia , który nie dodaje kodu rejestrowania bezpośrednio do aplikacji.

W zależności od sposobu, w jaki konfigurujesz warunki i akcje punktu przerwania, czerwona ikona na lewym marginesie zmienia się, aby wskazać ustawienia. Może zostać wyświetlony kształt kropki, czasomierz zegara lub diament.

Przechodź przez kod

Gdy program Visual Studio zatrzymuje wykonywanie kodu w punkcie przerwania, istnieje kilka poleceń, których można użyć, aby przejść przez kod lub uruchomić bloki kodu przed ponownym przerwaniem. Polecenia są dostępne w kilku miejscach w programie Visual Studio, w tym na pasku narzędzi debugera, menu Debug, menu kontekstowego dostępnego po kliknięciu prawym przyciskiem myszy w edytorze kodu oraz za pomocą skrótów klawiaturowych.

Poniższa tabela zawiera podsumowanie tych poleceń i zawiera skrót klawiaturowy:

Polecenie Skrót klawiszowy Description
Zatrzymaj Shift + F5 Zatrzymaj sesję debugowania.
uruchom ponownie Ctrl + Shift + F5 Uruchom ponownie bieżącą sesję debugowania.
kontynuuj F5 Uruchom kod, dopóki nie osiągniesz następnego punktu przerwania.
Wejdź do F11 Uruchom następną instrukcję i zatrzymaj. Jeśli następna instrukcja jest wywołaniem funkcji, debuger zatrzymuje się w pierwszym wierszu wywoływanej funkcji.
Przeskocz F10 Uruchom następną instrukcję, w tym wywołanie funkcji (uruchamiając cały kod) i stosując dowolną wartość zwracaną. To polecenie umożliwia łatwe pomijanie funkcji, których nie trzeba debugować.
Wyjście Shift+F11 Uruchom kod do końca bieżącej funkcji, a następnie przejdź do instrukcji wywołującej. To polecenie jest przydatne, gdy nie trzeba debugować pozostałej części bieżącej funkcji.
Uruchamianie do kursora Ctrl+F10 Uruchom kod do miejsca kursora w edytorze. To polecenie umożliwia łatwe pomijanie segmentu kodu, którego nie trzeba debugować.
Ustaw następną instrukcję Ctrl+Shift+F10 Zmień bieżący punkt uruchamiania w kodzie na lokalizację kursora. To polecenie pozwala pominąć segment kodu przed uruchomieniem w ogóle, na przykład wtedy, gdy wiadomo, że kod jest uszkodzony lub generuje niepożądany efekt uboczny.
Pokaż następną instrukcję Alt++\ Wróć do następnej instrukcji, aby uruchomić kod. To polecenie pomaga zlokalizować miejsce w kodzie, w którym debuger jest zatrzymany.

Sprawdzanie i modyfikowanie wartości

Po zatrzymaniu wykonywania kodu w debugerze można sprawdzić i zmodyfikować wartości zmiennych. Możesz również użyć okna Obserwowanie do monitorowania poszczególnych zmiennych i wyrażeń niestandardowych. Aby uzyskać więcej informacji, zobacz Inspekcja zmiennych.

  • Aby wyświetlić wartość przy użyciu funkcji Etykietki danych podczas debugowania, umieść wskaźnik myszy na dowolnej zmiennej w edytorze. Możesz wybrać wartość zmiennej, aby ją zmienić:

  • Aby użyć okna Autos wybierz Debug>Windows>Autos. To okno zawiera zmienne i wyrażenia zbliżone do bieżącej instrukcji. Możesz kliknąć dwukrotnie kolumnę wartości lub wybrać klawisz F2 , aby edytować wartość:

    Screenshot przedstawiający okno Autos w debugerze Visual Studio.

    Aby uzyskać więcej informacji na temat korzystania z okna Autos , zobacz Sprawdzanie zmiennych w oknach Autos i Locals.

  • Aby użyć okna Locals wybierz Debug>Windows>Locals. W tym oknie zostaną wyświetlone wszystkie zmienne, które znajdują się w bieżącym zakresie. Możesz kliknąć dwukrotnie kolumnę wartości lub wybrać klawisz F2 , aby edytować wartość:

    Aby uzyskać więcej informacji na temat korzystania z okna Ustawienia lokalne , zobacz Inspekcja zmiennych w oknach Automatyczne i Lokalne.

  • Aby użyć Watch windows, wybierz Debug>Windows>Watch>Watch 1-4. Ta opcja umożliwia wprowadzanie dowolnych wyrażeń Python i wyświetlanie wyników. Wyrażenia są ponownie oceniane dla każdego kroku:

    Aby uzyskać więcej informacji na temat korzystania z okna Zegarek , zobacz Ustawianie zegarka dla zmiennych w oknach Watch i QuickWatch.

  • Aby sprawdzić wartość ciągu, wybierz opcję Widok (lupa) po prawej stronie wpisu Wartość. Wszystkie typy str, unicode, bytes i bytearray są dostępne do inspekcji.

    W menu rozwijanym Widok są wyświetlane cztery opcje wizualizacji: Tekst, HTML, XML lub JSON.

    Po wybraniu wizualizacji w oknie podręcznym zostanie wyświetlona wartość ciągu bez cudzysłowów zgodnie z wybranym typem. Możesz wyświetlić ciąg z zawijaniem i przewijaniem, wyróżnianiem składni i widokami drzewa. Te wizualizacje mogą ułatwić debugowanie problemów z długimi i złożonymi ciągami.

Wyświetlanie wyjątków

Jeśli podczas debugowania wystąpi błąd, ale nie masz dla niego procedury obsługi wyjątków, debuger przerywa działanie w punkcie wyjątku:

Screenshot przedstawiający okienko wyjątków dla nieobsłużonego błędu w debugerze Visual Studio.

Screenshot przedstawiający wyskakujące okienko wyjątku dla nieobsługiwanego błędu w debugerze Visual Studio.

W przypadku wystąpienia błędu można sprawdzić bieżący stan programu, w tym stos wywołań. Jeśli jednak przejdziesz przez kod, proces debugowania będzie nadal zgłaszać wyjątek, dopóki nie zostanie on obsłużony lub program zakończy działanie.

  • Aby wyświetlić rozszerzony widok wyjątków, wybierz Debug>Windows>Ustawienia wyjątku.

    W oknie Ustawienia wyjątków pole wyboru obok wyjątku steruje tym, czy debuger zawsze przerywa działanie po wystąpieniu tego wyjątku.

  • Aby częściej przerywać dla określonego wyjątku, zaznacz pole wyboru obok wyjątku w oknie Ustawienia wyjątków .

  • Domyślnie większość wyjątków przerywa działanie, gdy nie można odnaleźć obsługi wyjątku w kodzie źródłowym. Aby zmienić to zachowanie, kliknij prawym przyciskiem myszy dowolny wyjątek i zmodyfikuj opcję Kontynuuj, gdy nieobsłużony w kodzie użytkownika. Aby rzadziej przerywać w przypadku wyjątku, usuń zaznaczenie tej opcji.

  • Aby skonfigurować wyjątek, który nie jest wyświetlany w oknie Ustawienia wyjątku , wybierz pozycję Dodaj (plus symbol). Wprowadź nazwę wyjątku do monitorowania. Nazwa musi być zgodna z pełną nazwą wyjątku.

Konfigurowanie opcji debugowania projektu

Domyślnie debuger uruchamia program przy użyciu standardowego modułu uruchamiania Python, bez argumentów wiersza polecenia i innych specjalnych ścieżek ani warunków. Opcje uruchamiania dla projektu Python można skonfigurować, ustawiając właściwości debugowania.

  • Aby uzyskać dostęp do właściwości debugowania projektu, kliknij prawym przyciskiem myszy projekt Python w Eksplorator rozwiązań wybierz kartę Properties a następnie wybierz kartę Debug.

W poniższych sekcjach opisano określone właściwości.

Definiowanie zachowania uruchamiania

W poniższej tabeli wymieniono możliwe wartości dla właściwości Tryb uruchamiania . Użyj tej właściwości, aby zdefiniować zachowanie uruchamiania debugera.

Value Description
Standard Python launcher Użyj kodu debugowania napisanego w przenośnym Python zgodnym z językiem CPython, IronPython i wariantami, takimi jak Stackless Python. Ta opcja zapewnia najlepsze środowisko debugowania czystego kodu Python. Gdy dołączasz do uruchomionego procesu python.exe, używany jest moduł uruchamiania określony w tej właściwości. Ten uruchamiacz udostępnia również debugowanie w trybie mieszanym dla środowiska CPython, co umożliwia bezproblemowe przechodzenie między kodem C/C++ a kodem Python.
Uruchamianie sieci Web Uruchom domyślną przeglądarkę podczas uruchamiania i włącz debugowanie szablonów. Aby uzyskać więcej informacji, zobacz sekcję Debugowanie szablonu sieci Web .
Uruchamianie aplikacji internetowej Django Zaimplementuj identyczne zachowanie we właściwości web launcher , ale dla środowiska Django. Użyj tej opcji tylko do celów zgodności z poprzednimi wersjami.
IronPython (.NET) launcher Użyj debugera .NET, który działa tylko z narzędziem IronPython, ale umożliwia przechodzenie między dowolnym projektem języka .NET, w tym C# i Visual Basic. Ten moduł uruchamiania jest używany w przypadku dołączania do uruchomionego procesu .NET, który hostuje program IronPython.

Definiowanie zachowania procesu

W poniższej tabeli opisano właściwości, które można ustawić w celu skonfigurowania działania debugera.

Property Description
Ścieżki wyszukiwania Określ ścieżki wyszukiwania plików i folderów, które Visual Studio używa dla Twojego projektu. Te wartości odpowiadają elementom pokazanym w Search Paths w węźle Eksplorator rozwiązań. Chociaż można określić ścieżki wyszukiwania w tym oknie dialogowym, łatwiej jest użyć Eksplorator rozwiązań gdzie można przeglądać foldery i automatycznie konwertować ścieżki na formularz względny.
Argumenty skryptu Zdefiniuj argumenty, które mają zostać dodane do polecenia używanego przez Visual Studio do uruchomienia skryptu, i które pojawią się po nazwie pliku skryptu. Pierwszy element wymieniony w wartości jest dostępny dla skryptu jako sys.argv[1], drugi jako sys.argv[2], itd.
Argumenty interpretera Wyświetl listę argumentów, które mają zostać dodane do wiersza polecenia modułu uruchamiania przed nazwą skryptu. Typowe argumenty to -W ... zarządzanie ostrzeżeniami, -O nieznaczne optymalizowanie programu i -u używanie operacji we/wy bez buforowania. Użytkownicy ironPython mogą używać tego pola do przekazywania -X opcji, takich jak -X:Frames lub -X:MTA.
Ścieżka interpretera Zidentyfikuj ścieżkę interpretera w celu zastąpienia ścieżki skojarzoną z bieżącym środowiskiem. Wartość może się okazać przydatna do uruchamiania skryptu z niestandardowym interpreterem.
Zmienne środowiskowe Użyj tej właściwości, aby dodać wpisy formularza <NAME>=\<VALUE>. Visual Studio stosuje tę wartość właściwości na końcu, na szczycie wszystkich istniejących globalnych zmiennych środowiskowych i po ustawieniu PYTHONPATH zgodnie z ustawieniem Search Paths. W związku z tym to ustawienie może służyć do ręcznego przesłaniania dowolnych innych zmiennych.

Praca z oknami interaktywnymi

Istnieją dwa okna interactive których można użyć podczas sesji debugowania: standardowe okno Visual Studio Immediate oraz okno Python Debug Interactive.

Otwieranie okna natychmiastowego

Możesz użyć standardowego okna Visual Studio Immediate, aby szybko ocenić wyrażenia Python i sprawdzić lub przypisywać zmienne w uruchomionym programie. Aby uzyskać więcej informacji, zobacz Okno natychmiastowe.

  • Aby otworzyć okno Immediate wybierz Debug>Windows>Immediate. Możesz również użyć skrótu klawiaturowego Ctrl+Alt+I.

Otwieranie okna Interaktywne debugowanie

Okno Python Debug Interactive oferuje bogate środowisko z pełnym doświadczeniem Interactive REPL dostępnym podczas debugowania, w tym możliwość pisania i uruchamiania kodu. To okno automatycznie łączy się z dowolnym procesem uruchomionym w debugerze przy użyciu Standardowego launchera Pythona, w tym procesów dołączonych za pośrednictwem Debug>Attach to Process. Jednak to okno nie jest dostępne w przypadku korzystania z debugowania C/C++ w trybie mieszanym.

  • Aby użyć okna Debug Interaktywnej, wybierz Debug>Windows>Python Debug Interaktywnej (Shift+Alt+I).

Okno Debugowanie interakcyjne obsługuje specjalne meta polecenia oprócz standardowych poleceń REPL, zgodnie z opisem w poniższej tabeli:

Polecenie Description
$continue $cont $c Uruchom program z bieżącej instrukcji.
$down, $d Przenieś bieżącą ramkę o jeden poziom niżej w odwzorowaniu stosu.
$frame Wyświetl bieżący identyfikator ramki.
$frame Przełącz bieżący frame na określony ID frame'u.
— Wymaga argumentu <identyfikatora ramki>.
$load Załaduj polecenia z pliku i wykonaj je do momentu ukończenia.
$proc Wyświetl bieżący identyfikator procesu.
$proc Przełącz bieżący proces na określony identyfikator procesu.
— Wymaga argumentu identyfikatora<> procesu.
$procs Wyświetl listę aktualnie debugowanych procesów.
$stepin $step $s Jeśli to możliwe, przejdź do następnego wywołania funkcji.
$stepout $return $r Wyjdź z bieżącej funkcji.
$stepover $until $unt Przejdź do następnego wywołania funkcji.
$thread Wyświetl bieżący identyfikator wątku.
$thread Przełącz bieżący wątek na wątek o określonym identyfikatorze.
— Wymaga argumentu <identyfikatora wątku>.
$threads Wyświetl listę aktualnie debugowanych wątków.
$up, $u Przenieś obecną ramkę o jeden poziom w śladzie stosu.
$where $w $bt Wyświetl ramki bieżącego wątku.

Standardowe okna tego debugera, takie jak procesy, wątki i stos wywołań, nie są synchronizowane z oknem Debuger Interaktywny. Jeśli zmienisz aktywny proces, wątek lub ramkę w oknie Debug Interactive , inne okna debugera nie będą miały wpływu. Podobnie zmiana aktywnego procesu, wątku lub ramki w innych oknach debugera nie ma wpływu na okno Debug interactive .

Korzystanie ze starszego debugera

W zależności od konfiguracji środowiska może być konieczne użycie starszego debugera:

  • Visual Studio 2017 w wersji 15.7 i starszej z Python 2.6, 3.1 do 3.4 lub IronPython
  • Visual Studio 2019 w wersji 16.5 lub nowszej z Python 2.6, 3.1 do 3.4 lub IronPython
  • ptvsd 3.x i wczesne wersje 4.x

Starszy debuger jest domyślnym w Visual Studio 2017 w wersji 15.7 lub starszej.

  • Aby użyć starszego debugera, wybierz pozycję Tools>Options, rozwiń opcje Python>Debugging i wybierz opcję Użyj starszego debugera.

Obsługa starszych wersji Visual Studio lub Python

Visual Studio 2017 wersji 15.8 lub nowszej używa debugera opartego na ptvsd wersji 4.1 lub nowszej. Visual Studio 2019 w wersji 16.5 lub wyższej używa debugera bazującego na debugpy. Te dwie wersje debugera są zgodne z wersją Python 2.7 lub Python 3.5 lub nowszą.

Jeśli używasz jednej z tych wersji Visual Studio, ale używasz Python 2.6, 3.1 do 3.4 lub IronPython, Visual Studio wyświetla błąd, Debugger nie obsługuje tego środowiska Python:

 Zrzut ekranu przedstawiający komunikat o błędzie debugera

Gdy Visual Studio zgłasza ten błąd środowiska, należy użyć starszego debugera.

Obsługa starszych wersji ptvsd

Jeśli używasz starszej wersji pliku ptvsd w bieżącym środowisku (na przykład starszej wersji 4.0.x lub wersji 3.x wymaganej do zdalnego debugowania), Visual Studio może wyświetlić błąd lub ostrzeżenie.

Jeśli środowisko używa pliku ptvsd 3.x, Visual Studio wyświetla błąd, nie można załadować pakietu Debugger:

Zrzut ekranu przedstawiający komunikat o błędzie debugera

Ostrzeżenie: Pakiet debugera jest nieaktualny, pojawia się, gdy używasz starszej wersji pliku ptvsd w wersji 4.x:

Zrzut ekranu przedstawiający komunikat ostrzegawczy debugera

Gdy Visual Studio zgłasza te błędy środowiska, należy użyć starszego debugera.

Important

Mimo że można zignorować ostrzeżenie dla niektórych wersji ptvsd, Visual Studio może nie działać poprawnie.

Zarządzanie instalacją ptvsd

Wykonaj następujące kroki, aby zarządzać instalacją ptvsd:

  1. W oknie Python Environments przejdź do karty Packages.

  2. Wprowadź ptvsd w polu wyszukiwania i sprawdź zainstalowaną wersję ptvsd:

  3. Jeśli wersja jest niższa niż 4.1.1a9 (wersja dołączona z Visual Studio), wybierz X z prawej strony pakietu, aby odinstalować starszą wersję. Visual Studio następnie używa swojej wersji dołączonej. (Można również odinstalować z poziomu programu PowerShell przy użyciu pip uninstall ptvsd polecenia ).

  4. Alternatywnie możesz zaktualizować pakiet ptvsd do najnowszej wersji, postępując zgodnie z instrukcjami w sekcji Rozwiązywanie problemów ze scenariuszami debugowania .

Rozwiązywanie problemów ze scenariuszami debugowania

W poniższych scenariuszach opisano inne opcje rozwiązywania problemów dotyczące konfiguracji debugowania.

Uaktualnianie ptvsd dla Visual Studio 2019

Jeśli masz problemy z debugerem w programie Visual Studio 2019 w wersji 16.4 i starszej, najpierw uaktualnij wersję debugera w następujący sposób:

  1. W oknie Python Environments przejdź do karty Packages.

  2. Wprowadź ptvsd --upgrade w polu wyszukiwania, a następnie wybierz Uruchom polecenie: pip install ptvsd --upgrade. (Możesz również użyć tego samego polecenia z poziomu programu PowerShell).

    Screenshot pokazujący, jak wybrać polecenie ptvsd upgrade w oknie środowiska Python.

    Jeśli problemy będą się powtarzać, utwórz problem w repozytorium PTVS GitHub.

    Uwaga

    W przypadku Visual Studio 2019 w wersji 16.5 lub nowszej debugpy jest częścią pakietu roboczego Visual Studio Python i jest aktualizowany razem z Visual Studio.

Włącz rejestrowanie debugera

W trakcie badania problemu z debugerem Microsoft może poprosić o włączenie i zebranie dzienników debugera w celu ułatwienia diagnostyki.

Następujące kroki umożliwiają debugowanie w bieżącej sesji Visual Studio:

  1. Otwórz okno polecenia w Visual Studio, wybierając pozycję View>Inne Windows> Okno poleceń.

  2. Wprowadź następujące polecenie:

    DebugAdapterHost.Logging /On /OutputWindow
    
  3. Rozpocznij debugowanie i wykonaj kroki niezbędne do odtworzenia problemu. W tym czasie dzienniki debugowania są wyświetlane w oknie Dane wyjściowe w obszarze Dziennik hosta karty debugowania. Następnie możesz skopiować dzienniki z tego okna i wkleić je do GitHub problemu, wiadomości e-mail itd.

  4. Jeśli Visual Studio przestaje odpowiadać lub nie możesz uzyskać dostępu do Output okno, uruchom ponownie Visual Studio, otwórz okno polecenia i wprowadź następujące polecenie:

    DebugAdapterHost.Logging /On
    
  5. Rozpocznij debugowanie i ponownie odtwórz problem. Dzienniki debugera znajdują się w lokalizacji %temp%\DebugAdapterHostLog.txt.