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:
|
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. |
Dołą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.
Aby uzyskać więcej informacji, zobacz Dołączanie do uruchomionych procesów.
Automatyczne 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.
Uruchom Edytor rejestru (regedit.exe).
Przejdź do HKEY_LOCAL_MACHINE\Software\Microsoft\Windows CurrentVersion File Execution Options folder.
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.
W menu skrótów w folderze aplikacji wybierz polecenie New, Wartość ciągu.
Zmień nazwę nowej wartości z New Value do debugera.
W menu skrótów wpisu debugger, wybierz polecenie Modyfikuj.
W oknie dialogowym Edytowanie ciągu wpisz vsjitdebugger.exe w Dane wartości pole.
W tym temacie
Przechodzenie do kodu w sesji debugowania
Wł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.
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.
Krok 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).
Uruchom 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.
Jeśli funkcja jest przeciążony lub jest w wielu nazw, można wybrać funkcje, które chcesz Wybierz punkty przerwania okno dialogowe.
Ustaw 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.
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.
Przestroga |
---|
Ustawienie następnej instrukcji powoduje, że licznik programu przejść bezpośrednio do nowej lokalizacji.Tego polecenia należy z rozwagą:
|
[!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.
Ograniczyć 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.
Wkraczać 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:
Otwórz okno modułów (klawiatury: Ctrl+Alt+U).
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.
Wybierz polecenie Symbole obciążenia z menu kontekstowego.
Krok 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.