Ta dokumentacja zawiera często zadawane pytania dotyczące funkcji debugowania w Visual Studio. Mapuje również zadania lub problemy związane z debugowaniem z odpowiednią funkcją debugera w Visual Studio. Te linki obejmują zadania lub problemy, takie jak debugowanie aplikacji wielowątkowej, nawigacja kodu, przeciek pamięci, inspekcja zmiennych, używanie punktów przerwania, debugowanie kodu zewnętrznego i wiele innych. Jeśli potrzebujesz przeglądu funkcji debugera, zobacz Pierwsze spojrzenie na debuger zamiast tego.
Punkty przerwania
Jak wstrzymać uruchamianie kodu w celu sprawdzenia wiersza kodu, który może zawierać usterkę?
Ustaw punkt przerwania. Aby uzyskać więcej informacji, zobacz Użyj odpowiedniego typu punktu przerwania oraz Rozpocznij pracę z punktami przerwania.
Jak wstrzymać uruchamianie kodu na podstawie określonych kryteriów?
Ustaw prawidłowy typ punktu przerwania. Aby uzyskać więcej informacji, zobacz Użyj właściwego rodzaju punktu przerwania.
Jak mogę rejestrować informacje w oknie Dane wyjściowe w konfigurowalnych warunkach bez modyfikowania lub zatrzymywania kodu?
Punkty śledzenia umożliwiają rejestrowanie informacji w oknie wyjściowym przy konfigurowalnych warunkach bez modyfikowania ani zatrzymywania kodu. Aby uzyskać więcej informacji, zobacz Używanie punktów śledzenia w debugerze Visual Studio.
Zarządzanie moimi punktami przerwania i ich śledzenie
Użyj okna punktów przerwania. Aby uzyskać więcej informacji, zobacz Zarządzanie punktami przerwania.
Wstrzymaj kod i debuguj, gdy zostanie wyrzucony określony obsługiwany lub nieobsługiwany wyjątek
Mimo że pomocnik wyjątków pokazuje, gdzie wystąpił błąd, jeśli chcesz wstrzymać i debugować określony błąd, możesz poinformować debugera o przerwaniu, gdy wyjątek zostanie zgłoszony.
Ustaw punkt przerwania ze stosu wywołań
Jeśli chcesz wstrzymać i debugować kod podczas badania przepływu wykonywania lub wyświetlania funkcji w oknach stosu wywołań, zobacz Ustawianie punktu przerwania w oknie stosu wywołań.
zatrzymać wykonanie kodu na określonej instrukcji asemblera
Można to zrobić, ustawiając punkt przerwania w oknie Dysasembler.
Nawigowanie po kodzie
Jak mogę nauczyć się poleceń umożliwiających krokowe przechodzenie przez kod podczas debugowania?
Aby uzyskać więcej informacji, zobacz Nawiguj kod z debuggerem.
Czy mogę uruchomić kod do określonego wiersza, pomijając punkty przerwania bez ich usuwania lub wyłączania?
W tych scenariuszach można użyć polecenia "Force Run To Cursor". Punkty przerwania można zachować, a debuger będzie je pomijać, dopóki nie osiągnie wiersza kodu, na którym jest kursor. Spowoduje to również pominięcie któregokolwiek z warunków przerwania wyjątków pierwszej szansy, które mogą wystąpić. Aby uzyskać więcej informacji, zobacz Nawiguj kod z debuggerem.
Jeśli wiersz kodu ma wywołania do różnych metod, czy mogę przejść do określonej metody?
Kliknij prawym przyciskiem myszy wiersz kodu, aby wyświetlić menu kontekstowe, które umożliwia wybranie pozycji "Przejdź do określonego". Spowoduje to wyświetlenie listy wszystkich metod, do których można przejść. Teraz możesz wybrać metodę, która cię interesuje.
Inspekcja i wizualizowanie danych
Jak mogę sprawdzić wartość zmiennych podczas uruchamiania aplikacji?
Umieść kursor na zmiennych za pomocą wskazówek dotyczących danych lub przeglądaj zmienne w oknie Autos i Lokale.
Czy mogę obserwować zmianę wartości określonej zmiennej?
Obserwuj zmienną Aby uzyskać więcej informacji, zobacz Ustaw obserwację zmiennych.
Jak mogę wyświetlić ciągi, które są zbyt długie dla okna debugera?
Wizualizator łańcuchów znaków pokazuje łańcuchy, które są zbyt długie dla podpowiedzi dotyczących danych lub okna debugera. Może również pomóc zidentyfikować źle sformułowane ciągi.
Wbudowany wizualizator łańcuchów w Visual Studio obejmuje typy Text, XML, HTML i JSON.Jak mogę wyświetlać duże obiekty kolekcji?
Wizualizator zestawu danych umożliwia wyświetlanie zawartości elementu DataSet, DataTable, DataView lub DataViewManager. Program IEnumerable Visualizer umożliwia wyświetlanie obiektów, takich jak tablice, lista itp. Aby uzyskać więcej informacji, zobacz wizualizatory tabelaryczne.
Debugowanie aplikacji, która jest już uruchomiona
Jak mogę debugować uruchomione aplikacje na komputerach lokalnych lub zdalnych, debugować wiele procesów jednocześnie, debugować aplikacje, które nie zostały utworzone w Visual Studio lub debugować dowolną aplikację, której nie uruchamiałem od Visual Studio?
Jak wielokrotnie dołączać do tej samej aplikacji?
Możesz użyć ponownego dołączenia do procesu (Shift+Alt+P), aby łatwo umożliwić rozpoczęcie debugowania aplikacji jednym kliknięciem bez konieczności każdorazowego przechodzenia przez okno dialogowe Dołączanie do procesu. Zobacz Ponowne dołączenie do procesu.
Debugowanie aplikacji wielowątkowych
Jak mogę debugować aplikację wielowątkową? Czy też moja aplikacja jest w stanie zawieszenia?
Zobacz dalsze rozwiązywanie problemów z oknem stosów równoległych .
Jak mogę wyświetlić kolejność wywoływanych funkcji?
Zobacz Jak wyświetlić stos wywołań.
Analizowanie pamięci
Czy moja aplikacja ma przeciek pamięci?
Utwórz migawkę i otwórz ją za pomocą narzędzia pamięci, aby kontynuować rozwiązywanie problemów. Zobacz Mierzenie użycia pamięci.
Jak mogę analizować użycie pamięci dla aplikacji natywnych lub zarządzanych?
Użyj narzędzia pamięci Visual Studio za pomocą debugowania na żywo, zrzutów sterty lub profilera wydajności.
Zobacz Wybierz narzędzie do analizy pamięci.Jak mogę analizować użycie pamięci dla aplikacji natywnych lub zarządzanych bez dołączania debugera? Użyj profilera wydajności Visual Studio z włączonym narzędziem użycia pamięci.
Zobacz Analizowanie użycia pamięci.Czy mogę porównać użycie pamięci między dwoma punktami w czasie?
Porównaj migawki w narzędziu pamięci lub porównaj dwa zrzuty sterty przy użyciu funkcji różnic. Zobacz Analizowanie użycia pamięci.
Debugowanie kodu zewnętrznego
Czy podczas debugowania widzę tylko kod użytkownika?
Just My Code to funkcja debugowania w Visual Studio, która automatycznie pomija wywołania kodu systemowego, frameworków i innego kodu niebędącego kodem użytkownika. W oknie Stos wywołań, Tylko mój kod zwija te wywołania do ramki [Kod zewnętrzny]. Zobacz Debugowanie tylko kodu użytkownika przy użyciu tylko mojego kodu.
Jak mogę wyświetlić lub debugować surowe instrukcje asemblera, które wykonywane są przez mój program?
Użyj okna Dezasemblacja, wybierając Debugowanie > Okna > Dezasemblacja. Można przechodzić przez jedną instrukcję naraz, a nawet ustawiać punkty przerwania na poszczególnych instrukcjach assemblera.
Czy mogę zobaczyć kod źródłowy bibliotek .NET?
Włącz serwery symboli Microsoft z menu Debug > Options > Symbole w celu pobrania symboli i źródła dla bibliotek .NET. Zobacz Określanie symbolu.
Jak mogę załadować pliki PDB z określonej lub udostępnionej lokalizacji lub serwera?
Skonfiguruj serwery symboli na podstawie opcji debugowania >> symboli. Zobacz Określanie symbolu.
Jak nigdy nie załadować określonego pliku PDB? A jak zawsze mogę go załadować?
Skonfiguruj listy dołączania i wykluczania w opcjach debugowania >> symboli.
Zobacz Określanie symbolu.
Konfigurowanie debugowania
Jak skonfigurować ustawienia debugera?
Aby skonfigurować opcje debugera i ustawienia projektu debugera, zobacz Ustawienia debugera i przygotowywanie.
Jak mogę dostosować informacje wyświetlane w debugerze?
Możesz wyświetlić informacje inne niż typ obiektu jako wartość w różnych oknach debugera. W przypadku kodu C#, Visual Basic, F# i C++/CLI użyj atrybutu DebuggerDisplay. Aby uzyskać bardziej zaawansowane opcje, możesz również dostosować interfejs użytkownika, tworząc niestandardowy wizualizator. W przypadku natywnego języka C++użyj platformy NatVis.
Dodatkowe zadania
Czy muszę zapisać zrzut?
Podczas debugowania, gdy proces jest zatrzymany na błędzie lub punkcie przerwania, wybierz Debug > Zapisz zrzut jako. Zobacz Pliki zrzutu.
Jak przeanalizować plik zrzutu?
Otwórz zrzut, wybierając Plik > Otwórz w Visual Studio. Aby rozpocząć debugowanie, wybierz opcję Debuguj tylko z zarządzanych, Debuguj tylko z natywnych, Debuguj z mieszanych lub Debuguj z pamięcią zarządzaną. Zobacz Pliki zrzutu.
Czy mogę edytować kod podczas sesji debugowania?
Użyj Hot Reload, poprzednio znanego jako Edytuj i kontynuuj. W przypadku języka XAML użyj XAML Hot Reload.
Jak mogę debugować na maszynach zdalnych?
Zobacz Debugowanie zdalne.
Jak mogę rozwiązać problemy z wydajnością?
Jak rozwiązać problem z wyjątkiem?
Zobacz Napraw błąd.
Debugowanie wspomagane przez sztuczną inteligencję
Jak uzyskać pomoc dotyczącą sztucznej inteligencji podczas debugowania?
Jeśli masz Copilot, poszukaj przycisku Analizuj za pomocą Copilot lub Zapytaj Copilot w oknach debugera, takich jak Pomocnik wyjątków, wskazówki dotyczące danych i okna zmiennych. Copilot już zna kontekst debugowania. Zobacz Debug za pomocą Copilot.
Jak używać agenta debugera do kompleksowego rozwiązywania usterek?
Agent debugera udostępnia przepływ pracy agenta, który odtwarza usterki, instrumentuje aplikację i weryfikuje poprawki przy użyciu danych środowiska uruchomieniowego na żywo. Wybierz pozycję Debugger z listy rozwijanej trybu w oknie Copilot Chat i podaj link problemu lub opisz usterkę. Zobacz Rozwiązywanie usterek Agentic za pomocą Debugger Agent.