Ogólne opcje debugowania

Aby ustawić Visual Studio debugera, wybierz pozycję Opcje narzędzi i w obszarze > Debugowanie zaznacz lub usuń zaznaczenie pól obok opcji Ogólne. Wszystkie ustawienia domyślne można przywrócić za pomocą narzędzi Importowanie i > eksportowanie Ustawienia > resetowania wszystkich ustawień. Aby zresetować podzbiór ustawień, zapisz ustawienia za pomocą Kreatora importowania i eksportowania Ustawienia przed wprowadzeniem zmian, które chcesz przetestować, a następnie zaimportuj zapisane ustawienia.

Można ustawić następujące opcje ogólne:

Zadaj pytanie przed usunięciem wszystkich punktów przerwania: wymaga potwierdzenia przed wykonaniem polecenia Usuń wszystkie punkty przerwania.

Przerywanie wszystkich procesów, gdy jeden proces przerywa: jednocześnie przerywa wszystkie procesy, do których debuger jest dołączony, gdy wystąpi przerwa.

Przerwij, gdy wyjątki przecinają domenę aplikacji lub granice zarządzane/natywne: w przypadku debugowania zarządzanego lub w trybie mieszanym środowisko uruchomieniowe języka wspólnego może przechwytować wyjątki, które przecinają granice domeny aplikacji lub granice zarządzane/natywne, gdy spełnione są następujące warunki:

  1. Gdy kod natywny wywołuje kod zarządzany za pomocą międzyoptymu com, a kod zarządzany zgłasza wyjątek. Zobacz Introduction to COM Interop (Wprowadzenie do międzyoptyku COM).

  2. Gdy kod zarządzany uruchomiony w domenie aplikacji 1 wywołuje kod zarządzany w domenie aplikacji 2, a kod w domenie aplikacji 2 zgłasza wyjątek. Zobacz Programowanie z domenami aplikacji.

  3. Gdy kod wywołuje funkcję przy użyciu odbicia, a ta funkcja zgłasza wyjątek. Zobacz Odbicie.

W warunkach 2 i 3 wyjątek jest czasami przechwycony przez kod zarządzany w programie , a nie przez mscorlib środowisko uruchomieniowe języka wspólnego. Ta opcja nie ma wpływu na przerywanie wyjątków przechwyconych przez . mscorlib

Włącz debugowanie na poziomie adresu: włącza zaawansowane funkcje debugowania na poziomie adresu (okno Dekompresja, okno Rejestry i punkty przerwania adresów).

  • Pokaż dekompełt, jeśli źródło jest niedostępne: automatycznie wyświetla okno Dekompełtowanie podczas debugowania kodu, dla którego źródło jest niedostępne.

Włącz filtry punktów przerwania: umożliwia ustawianie filtrów w punktach przerwania, tak aby dotyczyły tylko określonych procesów, wątków lub komputerów.

Użyj nowego pomocnika wyjątków: włącza pomocnika wyjątków, który zastępuje asystenta wyjątków. (Pomocnik wyjątków jest obsługiwany od Visual Studio 2017 r.)

Uwaga

W przypadku kodu zarządzanego ta opcja była wcześniej nazywana Włącz asystenta wyjątków .

Włącz Tylko mój kod: debuger wyświetla tylko kroki do kodu użytkownika ("Mój kod"), ignorując kod systemowy i inny kod, który jest zoptymalizowany lub który nie ma symboli debugowania.

  • Ostrzegaj, jeśli podczas uruchamiania nie ma kodu użytkownika (tylko zarządzane): podczas debugowania rozpoczyna się od Tylko mój kod włączone, ta opcja ostrzega, jeśli nie ma kodu użytkownika ("Mój kod").

Włącz .NET Framework kodu źródłowego: umożliwia debugerowi przechodzenie do .NET Framework źródłowego. Włączenie tej opcji powoduje automatyczne wyłączenie Tylko mój kod. .NET Framework zostaną pobrane do lokalizacji pamięci podręcznej. Zmień lokalizację pamięci podręcznej za pomocą okna dialogowego Opcje, kategorii Debugowanie i strony Symbole.

Przechodzenie przez właściwości i operatory (tylko zarządzane): uniemożliwia debugerowi przechodzenie do właściwości i operatorów w kodzie zarządzanym.

Włącz ocenę właściwości i inne niejawne wywołania funkcji: włącza automatyczną ocenę właściwości i niejawnych wywołań funkcji w oknach zmiennych i oknie dialogowym QuickWatch.

  • Wywołaj funkcję konwersji ciągów dla obiektów w oknach zmiennych (tylko C# i JavaScript): wykonuje niejawne wywołanie konwersji ciągu podczas obliczania obiektów w oknach zmiennych. Wynik jest wyświetlany jako ciąg zamiast nazwy typu. Ma zastosowanie tylko podczas debugowania w kodzie C#. To ustawienie może zostać zastąpione przez atrybut DebuggerDisplay (zobacz Używanie atrybutu DebuggerDisplay).

Włącz obsługę serwera źródłowego: informuje debuger Visual Studio, aby pobrać pliki źródłowe z serwerów źródłowych, które implementują protokół SrcSrv ( srcsrv.dll ). Team Foundation Server narzędzia debugowania dla programu Windows to dwa serwery źródłowe, które implementują protokół. Aby uzyskać więcej informacji na temat konfiguracji SrcSrv, zobacz dokumentację SrcSrv. Ponadto zobacz Określanie plików symboli (pdb) i plików źródłowych.

Ważne

Ponieważ odczytywanie plików .pdb może wykonywać dowolny kod w plikach, upewnij się, że serwer jest zaufany.

  • Drukuj komunikaty diagnostyczne serwera źródłowego w oknie Dane wyjściowe: po włączeniu obsługi serwera źródłowego to ustawienie włącza wyświetlanie diagnostyczne.

  • Zezwalaj na serwer źródłowy dla zestawów częściowo zaufanych (tylko zarządzane): gdy jest włączona obsługa serwera źródłowego, to ustawienie zastępuje domyślne zachowanie nie pobierania źródeł dla zestawów częściowo zaufanych.

  • Zawsze uruchamiaj polecenia niezaufanego serwera źródłowego bez monitowania: gdy jest włączona obsługa serwera źródłowego, to ustawienie zastępuje domyślne zachowanie monitowania podczas uruchamiania niezaufanego polecenia.

Włącz obsługę linku źródłowego: informuje Visual Studio, aby pobierał pliki źródłowe dla plików .pdb zawierających informacje o linku źródłowym. Aby uzyskać więcej informacji na temat linku źródłowego, zobacz Specyfikacja linku źródłowego.

Ważne

Ponieważ link źródłowy pobierze pliki przy użyciu protokołu HTTP lub HTTPS, upewnij się, że ufasz plikowi .pdb.

  • Wróć do uwierzytelniania usługi Git Menedżer poświadczeń dla wszystkich żądań linku źródłowego: gdy obsługa linku źródłowego jest włączona, a uwierzytelnianie żądania linku źródłowego kończy się niepowodzeniem, program Visual Studio następnie wywołuje usługę Git Menedżer poświadczeń.

Wyróżnianie całego wiersza źródłowego dla punktów przerwania i bieżącej instrukcji (tylko język C++): gdy debuger wyróżnia punkt przerwania lub bieżącą instrukcje, wyróżnia cały wiersz.

Wymagaj, aby pliki źródłowe dokładnie odpowiadały oryginalnej wersji: informuje debuger, aby sprawdzić, czy plik źródłowy jest taki sam jak wersja kodu źródłowego używanego do kompilowania debugego pliku wykonywalnego. Jeśli wersja nie jest dopasowana, zostanie wyświetlony monit o znalezienie pasującego źródła. Jeśli zgodne źródło nie zostanie znalezione, kod źródłowy nie będzie wyświetlany podczas debugowania.

Przekieruj cały tekst okna Dane wyjściowe do okna Natychmiastowe: wysyła wszystkie komunikaty debugera, które zwykle pojawiałyby się w oknie Dane wyjściowe, do okna Natychmiastowe.

Pokaż nieprzetworzone struktury obiektów w oknach zmiennych: wyłącza wszystkie dostosowania widoku struktury obiektów. Aby uzyskać więcej informacji na temat dostosowań widoku, zobacz Create custom views of managed objects (Tworzenie niestandardowych widoków zarządzanych obiektów).

Pomiń optymalizację JIT przy ładowaniu modułu (tylko zarządzane): wyłącza optymalizację JIT kodu zarządzanego po załadowaniu modułu i skompilowaniu jit podczas dołączania debugera. Wyłączenie optymalizacji może ułatwić debugowanie niektórych problemów, chociaż kosztem wydajności. Jeśli używasz usługi Tylko mój kod, pominięcie optymalizacji JIT może spowodować, że kod niebędący użytkownikiem będzie wyświetlany jako kod użytkownika ("Mój kod"). Aby uzyskać więcej informacji, zobacz Optymalizacja i debugowanie JIT.

Włącz debugowanie kodu JavaScript dla ASP.NET (Chrome, Microsoft Edge i IE): włącza debuger skryptów dla ASP.NET aplikacji. Przy pierwszym użyciu w przeglądarce Chrome może być konieczne zalogowanie się w przeglądarce, aby włączyć zainstalowane rozszerzenia dla programu Chrome. Wyłącz tę opcję, aby przywrócić starsze zachowanie.

Włączanie debugowania kodu JavaScript w odpowiednich elementach docelowych przy użyciu debugera języka JavaScript z wieloma elementami docelowymi (wymaga ponownego uruchomienia debugowania) Umożliwia jednoczesne połączenie z przeglądarką i serwerem back-end, co umożliwia debugowanie kodu uruchomionego na kliencie i serwerze bezpośrednio z edytora.

Eksportuj biblioteki DLL ładowania (tylko natywne): ładuje tabele eksportu bibliotek dll. Informacje o symbolach z tabel eksportu bibliotek DLL mogą być przydatne, jeśli pracujesz z komunikatami programu Windows, procedurami Windows (WindowProcs), obiektami COM lub marshalingiem albo z dowolną biblioteką DLL, dla której nie masz symboli. Odczytywanie informacji eksportu biblioteki DLL wiąże się z pewnym obciążeniem. Dlatego ta funkcja jest domyślnie wyłączona.

Aby zobaczyć, jakie symbole są dostępne w tabeli eksportu biblioteki dll, dumpbin /exports użyj . Symbole są dostępne dla dowolnej 32-bitowej biblioteki DLL systemu. Odczytając dane wyjściowe, można zobaczyć dokładną nazwę funkcji, w tym znaki inne dumpbin /exports niż alfanumeryczne. Jest to przydatne przy ustawianiu punktu przerwania w funkcji. Nazwy funkcji z tabel eksportu bibliotek DLL mogą być obcinane w innym miejscu w debugerze. Wywołania są wymienione w kolejności wywołań, z bieżącą funkcją (najgłębiej zagnieżdżoną) na początku. Aby uzyskać więcej informacji, zobacz dumpbin /exports.

Pokaż stosy równoległe diagramu od dołu: określa kierunek, w którym stosy są wyświetlane w oknie Stosy równoległe.

Ignoruj wyjątki dostępu do pamięci procesora GPU, jeśli zapisane dane nie zmieniły wartości : Ignoruje warunki wyścigu wykryte podczas debugowania, jeśli dane nie zmieniły się. Aby uzyskać więcej informacji, zobacz Debugowanie kodu procesora GPU.

Użyj trybu zgodności zarządzanej: zastępuje domyślny aparat debugowania starszą wersją, aby włączyć następujące scenariusze:

  • Używasz języka .NET innego niż C#, Visual Basic lub F#, który udostępnia własny ewaluator wyrażeń (w tym C++/CLI).

  • Chcesz włączyć funkcję Edytuj i kontynuuj dla projektów w języku C++ podczas debugowania w trybie mieszanym.

Uwaga

Wybranie trybu zgodności zarządzanej powoduje wyłączenie niektórych funkcji, które są implementowane tylko w domyślnym a aparatu debugowania. Starszy aparat debugowania został zastąpiony w Visual Studio 2012 r.

Użyj starszych ewaluatorów wyrażeń języka C# i VB: debuger będzie używać ewaluatorów wyrażeń języka Visual Studio 2013 C# lub Visual Basic, a nie ewaluatorów wyrażeń opartych na języku Roslyn w programie Visual Studio 2015.

Ostrzegaj podczas korzystania z niestandardowych wizualizatorów debugera przed potencjalnie niebezpiecznymi procesami (tylko zarządzane): program Visual Studio ostrzega, gdy używasz niestandardowego wizualizatora debugera, który uruchamia kod w debugowanych procesach, ponieważ może to być niebezpieczny kod.

Włącz Windows sterty debugowania (tylko natywny): włącza stertę debugowania systemu Windows w celu poprawy diagnostyki sterty. Włączenie tej opcji będzie miało wpływ na wydajność debugowania.

Włącz narzędzia debugowania interfejsu użytkownika dla języka XAML: okna Eksplorowanie właściwości na żywo i Drzewo wizualne na żywo będą wyświetlane po rozpoczęciu debugowania (F5) obsługiwanego typu projektu. Aby uzyskać więcej informacji, zobacz Sprawdzanie właściwości XAML podczas debugowania.

  • Podgląd wybranych elementów w drzewie wizualnym na żywo: element XAML, którego kontekst jest wybrany, jest również wybierany w oknie Live Visual Tree (Drzewo wizualne na żywo).

  • Pokaż narzędzia środowiska uruchomieniowego w aplikacji: pokazuje polecenia drzewa wizualnego na żywo na pasku narzędzi w głównym oknie debugowanych aplikacji XAML. Ta opcja została wprowadzona w Visual Studio 2015 Update 2.

  • Włącz Przeładowywanie kodu XAML na gorąco: umożliwia używanie funkcji Przeładowywanie kodu XAML na gorąco z kodem XAML, gdy aplikacja jest uruchomiona. (Ta funkcja była wcześniej nazywana "Edytuj XAML i kontynuuj")

  • Włącz tylko mój kod XAML: począwszy od Visual Studio 2019 r. w wersji 16.4, domyślne drzewo wizualne na żywo wyświetla tylko kod XAML sklasyfikowany jako kod użytkownika. Jeśli wyłączysz tę opcję, w narzędziu zostanie pokazany cały wygenerowany kod XAML.

  • Wyłączanie trybu wyboru po wybraniu elementu Począwszy od Visual Studio 2019 r. w wersji 16.4, przycisk selektora elementów paska narzędzi w aplikacji (Włącz wybór) wyłącza się po wybraniu elementu. Jeśli wyłączysz tę opcję, wybór elementu pozostanie aktywny do momentu, gdy ponownie klikniesz przycisk paska narzędzi w aplikacji.

  • Stosowanie Przeładowywanie kodu XAML na gorąco podczas zapisywania dokumentu Począwszy od Visual Studio 2019 r. w wersji 16.6, program Przeładowywanie kodu XAML na gorąco podczas zapisywania dokumentu.

Włącz narzędzia diagnostyczne podczas debugowania: okno narzędzia diagnostyczne zostanie wyświetlone podczas debugowania.

Pokaż perfTip czasu, który upłynął podczas debugowania: w oknie kodu jest wyświetlany czas, który upłynął dla danego wywołania metody podczas debugowania.

Włącz funkcję Edytuj i kontynuuj: włącza funkcję Edytuj i kontynuuj podczas debugowania.

  • Włącz natywną edycję i kontynuowanie: funkcji Edytuj i kontynuuj możesz używać podczas debugowania natywnego kodu C++. Aby uzyskać więcej informacji, zobacz Temat Edytuj i kontynuuj (C++).

  • Zastosuj zmiany przy kontynuowaniu (tylko natywne): Visual Studio automatycznie kompiluje i stosuje wszelkie zaległe zmiany kodu wprowadzone podczas kontynuowania procesu ze stanu przerwania. Jeśli nie zostanie wybrana opcja, możesz zastosować zmiany za pomocą elementu Zastosuj zmiany kodu w menu Debugowanie.

  • Ostrzegaj o nieodświeżonym kodzie (tylko natywny): otrzymuj ostrzeżenia o nieodświeżonym kodzie.

Pokaż przycisk Uruchom do kliknięcia w edytorze podczas debugowania: po wybraniu tej opcji przycisk Uruchom do kliknięcia będzie wyświetlany podczas debugowania.

Automatycznie zamknij konsolę po zatrzymaniu debugowania: Visual Studio, aby zamknąć konsolę na końcu sesji debugowania.

Włącz szybką ocenę wyrażeń (tylko zarządzane): umożliwia debugerowi szybsze próby oceny przez symulowanie wykonywania prostych właściwości i metod.

Ładowanie symboli debugowania w procesie zewnętrznym (tylko natywna) Włącza tę optymalizację pamięci podczas debugowania.

Przenieś Visual Studio na pierwszy plan podczas przerywania w debugerze Przełącza Visual Studio na pierwszym planie po wstrzymaniu w debugerze.

Opcje dostępne w starszych wersjach programu Visual Studio

Jeśli używasz starszej wersji programu Visual Studio, mogą być dostępne pewne dodatkowe opcje.

Włącz obsługę Narzędzia deweloperskie Edge dla aplikacji JavaScript platformy UWP (eksperymentalne): włącza narzędzia deweloperskie dla aplikacji JavaScript platformy UWP w Microsoft Edge.

Włącz starszy debuger języka JavaScript dla przeglądarki Chrome ASP.NET: włącza starszy debuger skryptów JavaScript dla ASP.NET Chrome. Przy pierwszym użyciu w przeglądarce Chrome może być konieczne zalogowanie się do przeglądarki, aby włączyć zainstalowane rozszerzenia dla programu Chrome.

Włącz asystenta wyjątków: w przypadku kodu zarządzanego włącza asystenta wyjątków. Począwszy od Visual Studio 2017 r., pomocnik wyjątków zastąpił asystenta wyjątków.

Odwiń stos wywołań dla nieobsługiwanych wyjątków: Powoduje, że okno stosu wywołań wycofuje stos wywołań do punktu, zanim wystąpi nieobsługiwany wyjątek.

Użyj eksperymentalnego sposobu uruchamiania debugowania języka JavaScript w przeglądarce Chrome Visual Studio jako administrator: informuje Visual Studio, aby wypróbować nowy sposób uruchamiania przeglądarki Chrome podczas debugowania języka JavaScript.

Ostrzegaj, jeśli nie ma symboli podczas uruchamiania (tylko natywne): wyświetla okno dialogowe ostrzeżenia podczas debugowania programu, dla którego debuger nie ma żadnych informacji o symbolach.

Ostrzegaj, jeśli debugowanie skryptu jest wyłączone przy uruchomieniu: Wyświetla okno dialogowe ostrzeżenia, gdy debuger zostanie uruchomiony z wyłączonym debugowaniem skryptu.

Użyj trybu zgodności natywnej: po wybraniu tej opcji debuger używa natywnego debugera Visual Studio 2010 zamiast nowego debugera macierzystego.

  • Użyj tej opcji podczas debugowania kodu .NET C++, ponieważ nowy aparat debugowania nie obsługuje oceny wyrażeń .NET C++. Jednak włączenie trybu zgodności natywnej powoduje wyłączenie wielu funkcji, które są zależne od bieżącej implementacji debugera. Na przykład starszy aparat nie ma wielu wizualizatorów dla typów wbudowanych, takich jak std::string Visual Studio 2015. W takich Visual Studio 2013 należy używać projektów do optymalnego debugowania.

Zobacz też