Udostępnij za pośrednictwem


Rozpoczynanie, przerywanie i zatrzymywanie działania debugera programu Visual Studio oraz nawigowanie po nim

W tym temacie

W tym temacie

Uruchamianie debugowania

  • Dołącz do procesu

  • Automatyczne uruchamianie aplikacji w debugerze

Przechodzenie do kodu w sesji debugowania

  • Włamać się do kodu przy użyciu punktów przerwania lub złamać wszystkie

  • Krok do, ponad i poza kod

  • Uruchom do określonej lokalizacji lub funkcji

  • Ustaw następną instrukcję do wykonania

  • Ograniczyć pracę krokową tylko moje kodu

  • Wkraczać do wywołań systemowych

  • Krok do właściwości i operatory w kodzie zarządzanym

Zatrzymaj debugowanie

Uruchamianie debugowania

Jeśli otwartych jest rozwiązanie jest Visual Studio, wyświetlane są trzy opcje, aby rozpocząć debugowanie:

Wybierz polecenie program Debug: polecenie, Start Debugging (klawiatury: F5).

Twoja aplikacja rozpoczyna się, a następnie uruchamia się do:

  • Debuger osiągnie punkt przerwania.

  • Możesz wybrać Stop Debugging na program Debug: polecenie menu.

  • Jest wyjątek.

  • Kończy pracę aplikacji.

Wybierz polecenie program Debug: polecenie, Step Into (klawiatury: F11) lub program Debug: polecenie, Kroku nad (klawiatury: F10).

Twoja aplikacja rozpoczyna się i następnie podziały wierszy w pierwszym wierszu.

W oknie źródła, zaznacz linię kodu wykonywalnego i wybierz polecenie Uruchom do kursor z menu kontekstowego.

Aplikacja zaczyna i działa, aż do napotkania punktu przerwania lub lokalizacji kursora, nastąpi wcześniej.

y740d9d3.collapse_all(pl-pl,VS.110).gifDołącz do procesu

Debuger może również dołączyć do programu, który jest uruchomiony w procesie niezależnego od Visual Studio.Po dołączeniu do programu, można użyć poleceń wykonanie debugera, sprawdzić stanu programu i tak dalej.Zdolność do wglądu program może być ograniczona, w zależności od tego, czy program został skompilowany informacje debugowania i czy masz dostęp do kodu źródłowego programu oraz czy wspólnej kompilatora JIT środowiska wykonawczego języka jest śledzenie informacji debugowania.

Aby dołączyć do procesu uruchomionego na komputerze lokalnym

Wybierz polecenie program Debug: polecenie, dołączyć do procesu.Na Dołącz do procesu okno dialogowe Wybierz proces od, Dostępne procesy listy, a następnie wybierz Attach.

Dołącz do procesu, okno dialogowe

Aby uzyskać więcej informacji, zobacz Dołączanie do uruchomionych procesów.

y740d9d3.collapse_all(pl-pl,VS.110).gifAutomatyczne uruchamianie aplikacji w debugerze

Czasami może być konieczne do debugowania kodu uruchamiania dla aplikacji, która zostanie uruchomiona przez inny proces.Przykładami usług i konfiguracji niestandardowych akcji.W tych scenariuszach może uruchomienie debugera i mogą być automatycznie dołączyć podczas uruchamiania aplikacji.

  1. Uruchom Edytor rejestru (regedit.exe).

  2. Przejdź do HKEY_LOCAL_MACHINE\Software\Microsoft\Windows CurrentVersion File Execution Options folder.

  3. Wybierz folder aplikacji, które chcesz uruchomić debugera.

    Jeśli nazwa aplikacji nie jest wymienione jako folder podrzędny, zaznacz Image File Execution Options , a następnie wybierz New, klucz w menu skrótów.Wybierz nowy klucz, wybierz polecenie Zmień nazwę w menu skrótów, a następnie wpisz nazwę aplikacji.

  4. W menu skrótów w folderze aplikacji wybierz polecenie New, Wartość ciągu.

  5. Zmień nazwę nowej wartości z New Value do debugera.

  6. W menu skrótów wpisu debugger, wybierz polecenie Modyfikuj.

  7. W oknie dialogowym Edytowanie ciągu wpisz vsjitdebugger.exe w Dane wartości pole.

    Edytowanie ciągu, okno dialogowe

Debuger automatycznego uruchamiania wpis w regedit.exe

W tym temacie

Przechodzenie do kodu w sesji debugowania

y740d9d3.collapse_all(pl-pl,VS.110).gifWłamać się do kodu przy użyciu punktów przerwania lub złamać wszystkie

Podczas debugowania aplikacji za pomocą programu Visual Studio debugger, aplikacja jest albo running (wykonywanie) lub jest on w trybie przerwania.

Wykonywanie aplikacji podziały debugera, gdy wykonanie osiągnie punkt przerwania lub gdy wystąpi wyjątek.Możliwe jest również rozbicie wykonanie ręcznie w dowolnym momencie.

Punkt przerwania jest sygnałem informujących debugera, aby tymczasowo wstrzymać wykonanie aplikacji w pewnym momencie.Gdy w punkt przerwania zawiesza wykonywanie, program nazywa się w trybie przerwania.Wprowadzanie tryb przerwania nie zatrzymać lub zakończenia realizacji programu; w dowolnym momencie można wznowić wykonywanie.

Większość funkcji debugera, takich jak wyświetlanie wartości zmiennych w okienku zmiennych lokalnych lub oceny wyrażenia w oknie czujki są dostępne tylko w trybie przerwania.Pozostają wszystkie elementy danej aplikacji (funkcje, zmienne i obiekty pozostają w pamięci, na przykład), ale ich ruchów i działalności są zawieszone.W trybie przerwania można sprawdzić pierwiastków stanowiska i Państwa szukać naruszenia lub błędów.Można również dokonać zmian w aplikacji, która znajduje się w trybie przerwania

Można skonfigurować punkty przerwania w celu wstrzymania wykonywania na podstawie wielu warunków.Zobacz Korzystanie z punktów przerwania i Tracepoints.W tej sekcji opisano dwa podstawowe sposoby włamać się do kodu.

Ustawianie punktów przerwania w kodzie

Aby ustawić punkt przerwania proste w kodzie, otwórz plik źródłowy w Edytorze Visual Studio.Ustaw kursor w wierszu kodu, który chcesz przerwać w, a następnie wybierz punkt przerwania, Wstaw punkt przerwania z menu kontekstowego (klawiatury: F9.Podziały debugera wykonanie prawa przed wykonaniem linii.

Ustaw punkt przerwania

Punkty przerwania w Visual Studio zapewnić bogaty zestaw funkcji dodatkowych, takich jak warunkowe punkty kontrolne i tracepoints.Zobacz Korzystanie z punktów przerwania i Tracepoints.

Ręcznie podzielić na kod

Włamać się do następnego wiersza dostępne kodu w aplikacji nakaz, wybierz polecenie program Debug: polecenie, Break wszystkich (klawiatury: Ctrl+Alt+Break).

  • Jeśli debugowania z włączoną opcją tylko mój kod przerwaniu w następnym wierszu kodu w projekcie.Zobacz Restrict stepping to Just My Code.

  • Jeśli debugowania kilka programów, punkt przerwania lub polecenie Przerwij wszystko wpływa na wszystkie programy debugowany domyślnie.Zobacz Change the break behavior of multiple processes w tym temacie.

  • Jeśli break podczas wykonywania kodu bez właściwego źródła lub symbol (PDF), pliki), debuger wyświetla Źródło plików nie można odnaleźć lub Nie można odnaleźć symboli stronę, która pomoże Ci znaleźć odpowiednie pliki.Zobacz Wyszukiwanie plików symboli (.pdb) oraz plików źródłowych i binarnych.

    Jeśli nie masz dostępu plików pomocniczych, nadal można debugować instrukcje montażu w oknie demontażu.

y740d9d3.collapse_all(pl-pl,VS.110).gifKrok do, ponad i poza kod

Jednym z najbardziej typowych procedur debugowania jest z metody.Stepping jest wykonywany kod jeden wiersz naraz.Gdy się zatrzymał wykonanie, takich jak uruchamianie debugera do punktu przerwania, można użyć trzech program Debug: polecenie polecenia menu do wykonywania kodu:

Polecenia menu

Skrót klawiaturowy

Opis

Wkrocz

F11

Jeśli wiersz zawiera wywołanie funkcji Step Into wykonuje tylko wywołania, a następnie zatrzymuje się w pierwszym wierszu kodu wewnątrz funkcji.W przeciwnym razie Step Into wykonuje następnej instrukcji.

Krok ponad

F10

Jeśli wiersz zawiera wywołanie funkcji Kroku nad wywołana funkcja jest wykonywana, a następnie zatrzymuje się w pierwszym wierszu kodu wewnątrz funkcji wywołującej.W przeciwnym razie Step Into wykonuje następnej instrukcji.

Krok

Shift+F11

Step Out wznawia wykonywanie kodu języka, aż funkcja zwróci, następnie przerwy w punkcie zwrotu w funkcji wywołującej.

  • Przy wywoływaniu funkcji zagnieżdżonych Step Into kroków w najbardziej głęboko zagnieżdżonych funkcji.Klienci korzystający z Step Into na wywołanie jak Func1(Func2()), debuger kroki w funkcji Func2.

  • Debuger faktycznie przeprowadza przez instrukcje kodu, a nie na liniach fizycznych.Na przykład if klauzuli mogą być zapisywane w jednym wierszu:

    int x = 42;
    string s = "Not answered";
    if( int x == 42) s = "Answered!";
    
    Dim x As Integet = 42
    Dim s As String = "Not answered"
    If x = 42 Then s = "Answered!"
    

    Po przekroczeniu tego wiersza debugera traktuje warunek jako jeden krok a skutek, jak inne (w tym przykładzie warunek jest spełniony).

y740d9d3.collapse_all(pl-pl,VS.110).gifUruchom do określonej lokalizacji lub funkcji

Czasami możesz wykonywać do pewnego momentu w kodzie, a następnie wstrzymania wykonywania.Jeśli punkt przerwania, ustaw w miejscu, w którym chcesz przerwać, wybierz program Debug: polecenie, Start Debugging Jeśli nie zostały rozpoczęte, debugowanie, lub, lub program Debug: polecenie, Kontynuuj.(W obu przypadkach F5 jest klawisz skrótu).Debuger zatrzymuje się na następny punkt przerwania w wykonywanie kodu.Wybierz polecenie program Debug: polecenie, Kontynuuj aż do punktu przerwania, który chcesz.Zobacz Set breakpoints in the code w tym temacie.

Można również uruchomić, na którym zostanie umieszczony kursor w edytorze kodu lub uruchomić do podanej funkcji.

Do lokalizacji kursora

Aby uruchamiać do lokalizacji kursora, umieść kursor na wykonywalnej linii kodu w oknie źródła.W menu kontekstowym edytora, wybierz polecenie Uruchom do kursor.

Uruchom funkcję na stos wywołań

W Stos wywołań okno, wybierz odpowiednią funkcję i wybierz polecenie Uruchom do kursor z menu kontekstowego.

Uruchom funkcję określonego przez nazwę

Można wydać polecenie debugera na uruchomienie aplikacji, aż do osiągnięcia podanej funkcji.Można określić funkcja według nazwy lub można wybierać spośród stos wywołań.

Funkcja są określane według nazwy, program Debug: polecenie, Nowy punkt przerwania, Przerwij przy funkcji, następnie wpisz nazwę funkcji i inne informacje identyfikacyjne.

Okno dialogowe Nowy punkt przerwania

Jeśli funkcja jest przeciążony lub jest w wielu nazw, można wybrać funkcje, które chcesz Wybierz punkty przerwania okno dialogowe.

Wybierz okno dialogowe punkty przerwania

y740d9d3.collapse_all(pl-pl,VS.110).gifUstaw następną instrukcję do wykonania

Po przerwaniu do debugera, można przenieść punkt wykonanie, aby ustawić następnej instrukcji na wykonanie kodu.Żółte grot strzałki na marginesie źródło lub Okno dezasemblacji wskazującą położenie następnej instrukcji do wykonania.Przesuwając ten grot strzałki, można pominąć część kodu lub powrócić do wiersza, wykonanych wcześniej.Możesz użyć tego programu dla sytuacji, takie jak pomijanie części kodu, który zawiera znany błąd.

Przykład2

Aby ustawić następną instrukcję do wykonania, użyj jednej z następujących procedur:

  • W oknie źródła przeciągnij żółte grot do lokalizacji, w którym chcesz ustawić następnej instrukcji w tym samym pliku źródłowego

  • W oknie źródła, należy ustawić kursor w wierszu, którą chcesz wykonać następny i wybierz polecenie Następnej instrukcji Set z menu kontekstowego.

  • W oknie, demontażu, należy ustawić kursor od instrukcji montażu, którą chcesz wykonać następny i wybierz polecenie Następnej instrukcji Set z menu kontekstowego.

Informacje dotyczące przestrogiPrzestroga

Ustawienie następnej instrukcji powoduje, że licznik programu przejść bezpośrednio do nowej lokalizacji.Tego polecenia należy z rozwagą:

  • Instrukcje między punktami stare i nowe wykonanie nie zostaną wykonane.

  • Jeśli punkt wykonanie jest przenoszony do tyłu, instrukcje interwencji nie są cofnąć.

  • Przenoszenie następnej instrukcji do innej funkcji lub zakresu zwykle skutkuje związanej z uszkodzeniem stosu wywołań, powodując błąd lub wyjątek.Jeśli spróbujesz następnej instrukcji do innego zakresu, debuger jest wyświetlane okno dialogowe z ostrzeżeniem i daje szansę, aby anulować operację.W języku Visual Basic nie można przenieść następnej instrukcji do innego zakresu lub funkcji.

  • W języku macierzystym C++ Jeśli masz sprawdzeń włączone, ustawienie następnej instrukcji może powodować wyjątek od generowany, gdy wykonanie dojdzie do końca metody.

  • Kiedy edytować i Kontynuuj jest włączony, Następnej instrukcji Set kończy się niepowodzeniem, jeśli zostały wprowadzone zmiany, które edytowania i kontynuowania, nie mogą ponownie zamapować natychmiast.Może to występować, na przykład, po zakończeniu edycji kodu wewnątrz bloku catch.Gdy tak się stanie.Zobaczysz komunikat o błędzie, informujący o tym, że operacja nie jest obsługiwana.

[!UWAGA]

W kodzie zarządzanym nie można przenieść następnej instrukcji w następujących warunkach:

  • Następna instrukcja jest w innej metody niż bieżącej instrukcji.

  • Debugowanie został uruchomiony przy użyciu Just In Time debugowania.

  • Odkręcanie stos wywołań jest w toku.

  • Zgłoszono wyjątek System.StackOverflowException lub System.Threading.ThreadAbortException.

Nie można ustawić następnej instrukcji, aplikacja jest uruchomiona aktywnie.Aby ustawić następnej instrukcji, debuger musi być w trybie przerwania.

y740d9d3.collapse_all(pl-pl,VS.110).gifOgraniczyć pracę krokową tylko moje kodu

Czasami podczas debugowania, można szukać tylko kod na piśmie i zignorować inny kod, takich jak wywołań systemowych.W tym z debugowaniem tylko mój kod.Tylko moje kod ukrywa kod niebędący użytkownikami, nie będą wyświetlane w systemie windows debugera.Po kroku, debuger przeprowadza przez wszelki kod niebędący użytkownikami, ale nie zatrzymuje się w nim.

Aby włączyć lub wyłączyć debugowanie tylko mój kod, wybierz polecenie program Debug: polecenie, opcji i ustawień.Na debugowanie SQL, Ogólne strony, zaznacz lub wyczyoć Włączyć tylko kod Moje.

Aby rozróżnić kod użytkownika z kodu niebędący użytkownikami, tylko mój kod analizuje pliki symboli (PDB) i optymalizacje program.

W standardowych kompilacja do debugowania Optymalizacja jest wyłączona i symboli debugowania są tworzone dla wszystkich modułów.Po uruchomieniu kompilacja do debugowania, moduły te uważane są za kod użytkownika.Jednak funkcja biblioteki, która jest zoptymalizowana i nie ma symboli debugowania nie uważa się za kod użytkownika.Tylko moje kod uniemożliwia wykonanie zatrzymując się na użycie punktów przerwania w kodzie biblioteki nie jest zazwyczaj są Państwo zainteresowani debugowania kodu.W oknie punkty przerwania te punkty przerwania pojawi się z ikoną niepełnosprawnych punkt przerwania.

Aby wyświetlić cały kod i cofnie wszystkie punkty przerwania, można wyłączyć tylko moje debugowanie przy użyciu Opcje okno dialogowe.

Trzy atrybuty również na to, co narzędzie debugger uzna za mój kod: DebuggerNonUserCodeAttribute debugera mówi, że kod jest stosowany do nie jest mój kod.DebuggerHiddenAttributeukrywa ten kod z debugera, nawet jeżeli tylko mój kod jest wyłączony.DebuggerStepThroughAttributeZawiera informacje debugera do wykonywania kodu, w których jest zastosowana do, a nie wkraczać do kodu.

Gdy tylko moje kodu jest włączone, można wybrać Złamać wszystkie na program Debug: polecenie menu i stop wykonanie w miejscu w przypadku, gdy nie jest mój kod do wyświetlenia.Kiedy tak się stanie, jest wyświetlany żaden kod.Dodatkowo Jeśli wybierzesz krok polecenie to spowoduje przejście do następnego wiersza kodu Moje.

Użycia instrukcji break programowe, takie jak Visual Basic Stop instrukcji, są traktowane odmiennie.Zawsze podziały debugera z tych stwierdzeń, nawet wtedy, gdy jest włączone tylko mój kod.W takiej sytuacji kod użytkownika nie jest wyświetlane, a nie ukryte, ale stepping będzie nadal Cię z kod niebędący użytkownikami do następnego wiersza mój kod.

[!UWAGA]

Tylko moje kod nie jest obsługiwany dla projektów urządzenia.

y740d9d3.collapse_all(pl-pl,VS.110).gifWkraczać do wywołań systemowych

Jeśli załadowano symbole debugowania dla kodu systemu i po prostu mój kod nie jest włączony, można przechodzić do wywołania systemowego tak jak w przypadku innych połączeń.

Aby dowiedzieć się, jak wyłączyć tylko moje kodu, zobaczRestrict stepping to Just My Code

Aby uzyskać dostęp pliki symboli firmy Microsoft, zobacz Za pomocą systemu Windows i innych symboli firmy Microsoft w Wyszukiwanie plików symboli (.pdb) oraz plików źródłowych i binarnych tematu.

Aby załadować symbole określonym składnikiem systemu, podczas debugowania:

  1. Otwórz okno modułów (klawiatury: Ctrl+Alt+U).

  2. Wybierz moduł, który chcesz załadować symbole.

    Można powiedzieć, które moduły mają symbole załadowany patrząc na Stanu Symbol kolumny.

  3. Wybierz polecenie Symbole obciążenia z menu kontekstowego.

y740d9d3.collapse_all(pl-pl,VS.110).gifKrok do właściwości i operatory w kodzie zarządzanym

Debuger czynności przez właściwości i operatory w kodzie zarządzanym domyślnie.W większości przypadków zapewnia to lepiej debugowania.Aby włączyć intensywniejszej właściwości lub podmiotów gospodarczych, wybierz polecenie program Debug: polecenie, opcji i ustawień.Na Debugging, Ogólne stronie, a następnie kliknij polecenie Wyczyść Krok ponad właściwości i operatory (tylko Managed) pole wyboru

W tym temacie

Zatrzymaj debugowanie

Zatrzymywanie, debugowanie oznacza zakończenie sesji debugowania.Zatrzymywanie wykonywania oznacza zakończenie procesu są debugowanie i kończenie sesji debugowania.To nie należy mylić z realizacji, które tymczasowo zatrzymuje wykonywanie procesu, który debugowania, ale pozostawia aktywnych sesji debugowania na złamanie.Odłączanie od procesu zatrzymuje debugowanie procesu, ale pozostawia je uruchomione.

Zatrzymaj debugowanie z programu Visual Studio

Wybierz polecenie program Debug: polecenie, Zatrzymaj debugowanie.

Zatrzymaj debugowanie kończy proces debugowany Jeśli program został uruchomiony z programu Visual Studio.W przypadku dołączenia do procesu zamiast uruchomienia go z programu Visual Studio, proces będzie dalej działał.

Zatrzymaj debugowanie i uruchom ponownie

Wybierz polecenie program Debug: polecenie, ponownie uruchomić zatrzymać w bieżącej sesji debugowania i ponownie uruchomić projekt uruchamiania debugera.

Zamknij aplikację, że jest debugowany

Podczas zamykania aplikacji, które jest debugowany program debugowania zatrzymuje się automatycznie.