Ogólne opcje debugowania
Aby ustawić opcje debugera programu Visual Studio, wybierz pozycję Opcje narzędzi>, a następnie w obszarze Debugowanie zaznacz lub usuń zaznaczenie pól obok opcji Ogólne. Wszystkie ustawienia domyślne można przywrócić za pomocą opcji Narzędzia>Importuj i Eksportuj Ustawienia> Resetuj wszystkie ustawienia. Aby zresetować podzestaw ustawień, zapisz ustawienia za pomocą Kreatora importu i eksportu Ustawienia przed wprowadzeniem zmian, które chcesz przetestować, a następnie zaimportuj zapisane ustawienia.
Można ustawić następujące opcje ogólne :
Przed usunięciem wszystkich punktów przerwania zapytaj: wymaga potwierdzenia przed wykonaniem polecenia Usuń wszystkie punkty przerwania .
Przerwij wszystkie procesy, gdy jeden proces ulega awarii: jednocześnie przerywa wszystkie procesy, do których jest dołączony debuger, gdy wystąpi przerwa.
Przerwij, gdy wyjątki przekraczają granice AppDomain lub zarządzane/natywne: w debugowaniu zarządzanym lub mieszanym środowisko uruchomieniowe języka wspólnego może przechwytywać wyjątki, które przekraczają granice domeny aplikacji lub granice zarządzane/natywne, gdy spełnione są następujące warunki:
Gdy kod natywny wywołuje kod zarządzany przy użyciu międzyoperacyjności MODELU COM i kod zarządzany zgłasza wyjątek. Zobacz Wprowadzenie do międzyoperacjności modelu COM.
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.
Gdy kod wywołuje funkcję przy użyciu odbicia, a funkcja zgłasza wyjątek. Zobacz Emocje ion.
W warunkach 2 i 3 wyjątek jest czasami przechwytywane przez kod zarządzany, mscorlib
a nie przez środowisko uruchomieniowe języka wspólnego. Ta opcja nie ma wpływu na niezgodność wyjątków przechwyconych przez mscorlib
program .
Włącz debugowanie na poziomie adresu: włącza zaawansowane funkcje debugowania na poziomie adresu ( okno Dezasemblacji , okno Rejestry i punkty przerwania adresów).
- Pokaż dezasemblacji, jeśli źródło jest niedostępne: automatycznie wyświetla okno Dezasemblacji 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, aby miały wpływ tylko na określone procesy, wątki lub komputery.
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 programu Visual Studio 2017)
Uwaga
W przypadku kodu zarządzanego ta opcja była wcześniej nazywana Włączanie asystenta wyjątków.
Włącz tylko mój kod: debuger wyświetla i przechodzi do kodu użytkownika ("Mój kod"), ignorując tylko kod systemowy i inny kod zoptymalizowany lub nie ma symboli debugowania.
- Ostrzegaj, jeśli podczas uruchamiania nie ma kodu użytkownika (tylko zarządzany):podczas debugowania rozpoczyna się od włączenia opcji Tylko mój kod, ta opcja ostrzega Cię, jeśli nie ma kodu użytkownika ("Mój kod").
Włącz krok źródłowy programu .NET Framework: umożliwia debugerowi przejście do źródła programu .NET Framework. Włączenie tej opcji powoduje automatyczne wyłączenie opcji Tylko mój kod. Symbole programu .NET Framework zostaną pobrane do lokalizacji pamięci podręcznej. Zmień lokalizację pamięci podręcznej za pomocą okna dialogowego Opcje , kategoria debugowania , strona Symbole .
Przechodzenie do właściwości i operatorów (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 w oknie dialogowym QuickWatch .
- Wywoływanie funkcji konwersji ciągów w obiektach w oknach zmiennych (tylko C# i JavaScript): wykonuje niejawne wywołanie konwersji ciągów podczas oceniania obiektów w oknach zmiennych. Wynik jest wyświetlany jako ciąg zamiast nazwy typu. Dotyczy tylko debugowania 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 programu Visual Studio o pobieraniu plików źródłowych z serwerów źródłowych, które implementują protokół SrcSrv (srcsrv.dll
). Serwer Team Foundation Server i narzędzia debugowania dla systemu 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 symbolu (.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 powoduje włączenie wyświetlania diagnostycznego.
Zezwalaj na serwer źródłowy dla zestawów częściowo zaufanych (tylko zarządzane): po włączeniu obsługi serwera źródłowego to ustawienie zastępuje domyślne zachowanie nie pobierania źródeł dla zestawów częściowo zaufania.
Zawsze uruchamiaj niezaufane polecenia serwera źródłowego bez monitowania: Po włączeniu obsługi 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 debuger programu Visual Studio o pobraniu plików źródłowych dla plików pdb zawierających informacje o linku źródłowego. Aby uzyskać więcej informacji na temat linku źródłowego, zobacz specyfikację linku źródłowego.
Ważne
Ponieważ link źródłowy pobierze pliki przy użyciu protokołu http lub https, upewnij się, że plik .pdb jest zaufany.
- Wróć do uwierzytelniania usługi Git Credential Manager dla wszystkich żądań linku źródłowego: po włączeniu obsługi linku źródłowego żądanie linku źródłowego kończy się niepowodzeniem uwierzytelniania, program Visual Studio następnie wywołuje Menedżera poświadczeń Git.
Wyróżnij całą linię źródłową punktów przerwania i bieżącą instrukcję (tylko C++): gdy debuger wyróżnia punkt przerwania lub bieżącą instrukcję, wyróżnia cały wiersz.
Wymagaj, aby pliki źródłowe były dokładnie zgodne z oryginalną wersją: informuje debugera, aby sprawdzić, czy plik źródłowy jest zgodny z wersją kodu źródłowego używanego do kompilowania pliku wykonywalnego, który debugujesz. Gdy wersja nie jest zgodna, zostanie wyświetlony monit o znalezienie pasującego źródła. Jeśli nie można odnaleźć pasującego źródła, kod źródłowy nie będzie wyświetlany podczas debugowania.
Przekieruj cały tekst okna Danych wyjściowych do okna Natychmiastowe: wysyła wszystkie komunikaty debugera, które zwykle będą wyświetlane w oknie Dane wyjściowe do okna Natychmiastowe .
Pokaż surową strukturę obiektów w oknach zmiennych: wyłącza wszystkie dostosowania widoku struktury obiektów. Aby uzyskać więcej informacji na temat wyświetlania dostosowań, zobacz Tworzenie niestandardowych widoków obiektów zarządzanych.
Pomijanie optymalizacji JIT przy obciążeniu modułu (tylko zarządzane): wyłącza optymalizację JIT kodu zarządzanego po załadowaniu modułu i skompilowaniu trybu 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 tylko mojego kodu, pomijanie optymalizacji JIT może spowodować, że kod użytkownika inny niż użytkownik będzie wyświetlany jako kod użytkownika ("Mój kod"). Aby uzyskać więcej informacji, zobacz Optymalizacja i debugowanie JIT.
Włącz debugowanie języka JavaScript dla ASP.NET (Chrome, Microsoft Edge i IE): włącza debuger skryptów dla aplikacji ASP.NET. Po pierwszym użyciu w przeglądarce Chrome może być konieczne zalogowanie się do przeglądarki w celu włączenia zainstalowanych rozszerzeń przeglądarki Chrome. Wyłącz tę opcję, aby przywrócić starsze zachowanie.
Włącz korzystanie z wielocelowego debugera języka JavaScript do debugowania kodu JavaScript w odpowiednich miejscach docelowych (wymaga ponownego uruchomienia debugowania) Umożliwia jednoczesne nawiązywanie połączenia z przeglądarką i zapleczem, co umożliwia debugowanie kodu uruchomionego w kliencie i serwerze bezpośrednio z poziomu edytora.
Załaduj eksporty bibliotek dll (tylko natywne): ładuje tabele eksportu dll. Informacje o symbolach z tabel eksportu dll mogą być przydatne, jeśli pracujesz z komunikatami systemu Windows, procedurami systemu Windows (WindowProcs), obiektami COM lub marshalingiem lub dowolną biblioteką DLL, dla której nie masz symboli. Odczytywanie informacji o eksportowaniu bibliotek 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, użyj polecenia dumpbin /exports
. Symbole są dostępne dla dowolnej 32-bitowej biblioteki dll systemu. Odczytując dumpbin /exports
dane wyjściowe, można zobaczyć dokładną nazwę funkcji, w tym znaki inne niż alfanumeryczne. Jest to przydatne przy ustawianiu punktu przerwania w funkcji. Nazwy funkcji z tabel eksportu dll mogą być wyświetlane obcięte 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 /export.
Pokaż diagram stosów równoległych do dołu: określa kierunek wyświetlania stosów 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 uległy zmianie. 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ń (obejmuje to język C++/CLI).
Chcesz włączyć opcję Edytuj i kontynuuj dla projektów języka 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 aucie debugowania. Starszy aparat debugowania został zastąpiony w programie Visual Studio 2012.
Ostrzegaj podczas korzystania z niestandardowych wizualizatorów debugera przed potencjalnie niebezpiecznymi procesami (tylko zarządzana): program Visual Studio ostrzega cię, gdy używasz niestandardowego wizualizatora debugera, który uruchamia kod w procesie debugowania, ponieważ może on uruchamiać niebezpieczny kod.
Włącz alokator sterty debugowania systemu Windows (tylko natywny): włącza stertę debugowania systemu Windows w celu ulepszenia diagnostyki sterty 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: dynamiczne drzewo wizualne i okna Eksplorowanie właściwości na żywo będą wyświetlane po rozpoczęciu debugowania (F5) obsługiwanego typu projektu. Aby uzyskać więcej informacji, zobacz Inspekcja właściwości XAML podczas debugowania.
Wyświetl podgląd wybranych elementów w dynamicznym drzewie wizualnym: element XAML, którego kontekst jest zaznaczony, jest również wybierany w oknie Live Visual Tree (Dynamiczne drzewo wizualne).
Pokaż narzędzia środowiska uruchomieniowego w aplikacji: pokazuje polecenia Live Visual Tree na pasku narzędzi w głównym oknie aplikacji XAML, która jest debugowana.
Włącz Przeładowywanie na gorąco XAML: umożliwia korzystanie z funkcji Przeładowywanie na gorąco XAML z kodem XAML, gdy aplikacja jest uruchomiona. (Ta funkcja była wcześniej nazywana "Edytuj i kontynuuj XAML")
Włącz tylko mój kod XAML: począwszy od programu Visual Studio 2019 w wersji 16.4, dynamiczne drzewo wizualne domyślnie wyświetla tylko kod XAML sklasyfikowany jako kod użytkownika. Jeśli wyłączysz tę opcję, w narzędziu zostanie wyświetlony cały wygenerowany kod XAML.
Wyłącz tryb wyboru, gdy element jest zaznaczony w programie Visual Studio 2019 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 elementów pozostanie włączony do momentu ponownego kliknięcia przycisku paska narzędzi w aplikacji.
Zastosuj Przeładowywanie na gorąco XAML podczas zapisywania dokumentu, począwszy od programu Visual Studio 2019 w wersji 16.6, stosuje Przeładowywanie na gorąco XAML podczas zapisywania dokumentu.
Włącz narzędzia diagnostyczne podczas debugowania: okno Narzędzia diagnostyczne jest wyświetlane podczas debugowania.
Pokaż czas, który upłynął podczas debugowania: w oknie kodu jest wyświetlany czas upływu danego wywołania metody podczas debugowania.
Włącz edytowanie i kontynuuj: włącza funkcję Edytuj i Kontynuuj podczas debugowania.
Włącz natywną edycję i kontynuuj: możesz użyć funkcji Edytuj i Kontynuuj podczas debugowania natywnego kodu C++. Aby uzyskać więcej informacji, zobacz Edytowanie i kontynuowanie (C++).
Zastosuj zmiany w trybie kontynuacji (tylko natywna): program Visual Studio automatycznie kompiluje i stosuje wszelkie zaległe zmiany kodu wprowadzone podczas kontynuowania procesu ze stanu przerwania. Jeśli nie wybrano, możesz zastosować zmiany przy użyciu elementu Zastosuj zmiany kodu w menu Debugowanie .
Ostrzegaj o nieaktualnym kodzie (tylko natywne): uzyskaj ostrzeżenia dotyczące nieaktualnego kodu.
Pokaż przycisk Uruchom, aby kliknąć w edytorze podczas debugowania: po wybraniu tej opcji przycisk Uruchom do kliknięcia zostanie wyświetlony podczas debugowania.
Automatyczne zamykanie konsoli po zatrzymaniu debugowania: informuje program Visual Studio o zamknięciu konsoli na końcu sesji debugowania.
Włącz szybką ocenę wyrażeń (tylko zarządzana): umożliwia debugerowi szybsze przeprowadzenie oceny przez symulowanie wykonywania prostych właściwości i metod.
Załaduj symbole debugowania w procesie zewnętrznym (tylko natywna) Umożliwia optymalizację pamięci podczas debugowania.
Przełącz program Visual Studio na pierwszy plan podczas przerywania pracy w debugerze przełącza program Visual Studio na pierwszy plan po wstrzymaniu w debugerze.
Nie otwieraj rozszerzonych wskazówek dotyczących danych, dopóki nie klikniesz opcji Po wybraniu tej opcji rozwinięta porada dotycząca danych pozostanie rozwinięta do momentu jej kliknięcia.
Opcje dostępne w starszych wersjach programu Visual Studio
Jeśli używasz starszej wersji programu Visual Studio, niektóre dodatkowe opcje mogą być dostępne.
Włącz narzędzia microsoft Edge Developer Tools for UWP JavaScript Apps (eksperymentalne): umożliwia korzystanie z narzędzi deweloperskich dla aplikacji JavaScript platformy UWP w przeglądarce Microsoft Edge.
Włącz starszy debuger języka JavaScript dla przeglądarki ASP.NET: włącza starszy debuger skryptów Języka JavaScript dla przeglądarki Chrome dla aplikacji ASP.NET. Po pierwszym użyciu w przeglądarce Chrome może być konieczne zalogowanie się do przeglądarki w celu włączenia zainstalowanych rozszerzeń przeglądarki Chrome.
Włącz asystenta wyjątków: w przypadku kodu zarządzanego włącza asystenta wyjątków. Począwszy od programu Visual Studio 2017, pomocnik wyjątków zastąpił asystenta wyjątków.
Odwij stos wywołań w nieobsługiwane wyjątki: Powoduje , że okno stosu wywołań wycofało stos wywołań do punktu przed wystąpieniem nieobsługiwanego wyjątku.
Użyj eksperymentalnego sposobu uruchamiania debugowania języka JavaScript dla programu Chrome podczas uruchamiania programu Visual Studio jako Administracja istrator: informuje program Visual Studio o wypróbowaniu nowego sposobu uruchamiania przeglądarki Chrome podczas debugowania języka JavaScript.
Ostrzegaj, jeśli podczas uruchamiania nie ma żadnych symboli (tylko natywne): wyświetla okno dialogowe ostrzeżenia podczas debugowania programu, dla którego debuger nie ma informacji o symbolach.
Ostrzegaj, jeśli debugowanie skryptu jest wyłączone podczas uruchamiania: wyświetla okno dialogowe ostrzeżenia po uruchomieniu debugera z wyłączonym debugowaniem skryptu.
Użyj trybu zgodności zarządzanej: po wybraniu tej opcji debuger używa zarządzanego debugera programu Visual Studio 2010, który był wymagany podczas debugowania kodu C++/CLI.
Użyj trybu zgodności natywnej: po wybraniu tej opcji debuger używa debugera natywnego programu Visual Studio 2010 zamiast nowego natywnego debugera.
- Użyj tej opcji podczas debugowania kodu .NET C++, ponieważ nowy aparat debugowania nie obsługuje obliczania wyrażeń języka C++ platformy .NET. Jednak włączenie trybu natywnej zgodności powoduje wyłączenie wielu funkcji, które zależą od bieżącej implementacji debugera do działania. Na przykład starszy aparat nie ma wielu wizualizatorów wbudowanych typów, takich jak
std::string
w projektach programu Visual Studio 2015. Użyj projektów programu Visual Studio 2013 w celu uzyskania optymalnego środowiska debugowania w tych przypadkach.