Debugowanie jednego lub więcej procesów za pomocą programu Visual Studio
Oto jak rozpocząć debugowanie procesów, przełączać się między procesami, podzielić i kontynuować wykonywanie, przechodzić krok po kroku w źródle, zatrzymać debugowanie i zakończyć lub odłączyć od procesów.
Zawartość
Skonfiguruj zachowanie wykonania wielu procesów
Znajdowanie plików źródłowych i plików symboli (.pdb)
Uruchamianie wielu procesów w rozwiązaniu programu VS, dołączanie do procesu, automatyczne uruchamianie procesu w debugerze
Przełączanie procesów, przerywanie i kontynuowanie wykonywania, krokowe przetwarzanie źródła
Zatrzymywanie debugowania, kończenie lub odłączanie od procesów
Skonfiguruj zachowanie wykonania wielu procesów
Domyślnie, gdy w debugerze uruchomionych jest wiele procesów, polecenia przerywania, przechodzenia i zatrzymywania debugera zazwyczaj dotyczą wszystkich procesów.Na przykład gdy jeden proces jest zawieszony w punkcie przerwania, wykonanie wszystkich innych procesów jest również zawieszone.Można zmienić to domyślne zachowanie, aby uzyskać większą kontrolę nad obiektami docelowymi poleceń wykonywania.
W menu Debugowanie wybierz polecenie Opcje i ustawienia.
Na stronie Debugowanie, Ogólne wyczyść pole wyboru Przerwij wszystkie procesy gdy jeden proces zostanie przerwany.
Zawartość
Znajdź pliki źródłowe i pliki symboli (.pdb)
Aby nawigować po kodzie źródłowym procesu, debuger musi mieć dostęp do plików źródłowych i plików symboli procesu.Zobacz Określanie plików symboli (.pdb) i plików źródłowych w debugerze programu Visual Studio.
Jeśli nie masz dostępu plików dla procesu, można nawigować przy użyciu okna Dezasemblacja.Zobacz Porady: korzystanie z okna dezasemblacji
Zawartość
Uruchom wiele procesów w rozwiązaniu programu VS, dołącz do procesu, automatycznie uruchom proces w debugerze
- Uruchamianie debugowania wielu procesów w rozwiązaniu programu Visual Studio • Zmiana projektu startowego • Uruchamianie określonego projektu w rozwiązaniu • Uruchamianie wielu projektów w rozwiązaniu • Dołączanie do procesu • Automatyczne uruchamianie procesu w debugerze
[!UWAGA]
Debuger nie dołącza automatycznie do procesu podrzędnego uruchomionego przez proces debugowania, nawet jeśli projekt podrzędny należy do tego samego rozwiązania.Aby debugować proces podrzędny:
Dołącz do procesu podrzędnego, po jego uruchomieniu.
-lub-
Skonfiguruj system Windows, aby automatycznie rozpocząć proces podrzędny w nowym wystąpieniu debugera.
Uruchamianie debugowania wielu procesów w rozwiązaniu programu Visual Studio
Gdy istnieje więcej niż jeden projekt rozwiązania Visual Studio, który może zostać wykonany niezależnie (projekty uruchamiane w oddzielnych procesach), można wybrać, które projekty uruchamia debuger.
Zmień projekt startowy
Aby zmienić projekt startowy rozwiązania, zaznacz projekt w oknie eksploratora rozwiązań, a następnie wybierz polecenie Ustaw jako projekt startowy z menu kontekstowego.
Uruchamianie określonego projektu w ramach rozwiązania
Aby uruchomić projekt rozwiązania bez zmieniania domyślnego projektu startowego, zaznacz projekt w oknie Eksploratora rozwiązań, a następnie wybierz polecenie Debugowanie z menu kontekstowego.Następnie możesz wybrać Uruchom nowe wystąpienie lub Wkrocz do nowego wystąpienia.
Zawartość
Uruchamianie wiele projektów w rozwiązaniu
Wybierz rozwiązanie w oknie Eksplorator rozwiązań, a następnie wybierz polecenie Właściwości z menu kontekstowego.
Wybierz kolejno pozycje Typowe właściwości, Projekt uruchamiania w oknie dialogowym Właściwości.
Dla każdego projektu, który chcesz zmienić, wybierz opcję Uruchom, Uruchom bez debugowania lub Brak.
Zawartość
Dołącz do procesu
Debuger może również dołączać do programów uruchomionych w procesach poza programem Visual Studio, w tym programów uruchomionych na urządzeniu zdalnym.Po dołączeniu do programu, możesz użyć poleceń debugera, sprawdzić stan programu i nie tylko.Możliwość kontroli programu może być ograniczona w zależności od tego, czy program został skompilowany według informacji o debugowaniu i czy masz dostęp do kodu źródłowego programu, oraz czy kompilator środowiska uruchomieniowego języka wspólnego JIT śledzi informacje debugowania.
Aby uzyskać więcej informacji, zobacz Dołączanie do uruchomionego procesu za pomocą debugera programu Visual Studio.
Dołącz do procesu, który jest uruchomiony na Twoim komputerze lokalnym
Wybierz Debuguj, Dołącz do procesu.W oknie dialogowym Dołącz do procesu zaznacz proces na liście Dostępne procesy a następnie wybierz Dołącz.
Zawartość
Automatycznie uruchamia proces w debugerze
Czasami może być konieczne zdebugowanie kodu startowego dla programu, który jest uruchamiany przez inny proces.Przykładami są usługi i akcje instalacji niestandardowej.W tych scenariuszach można mieć uruchomionego debugera i automatycznie dołączyć podczas uruchamiania aplikacji.
Uruchom Edytora rejestru (regedit.exe).
Przejdź do folderu Opcje wykonanie pliku CurrentVersion HKEY_LOCAL_MACHINE\Software\Microsoft\Windows.
Wybierz folder aplikacji, którą chcesz uruchomić w debugerze.
Jeśli nazwy aplikacji nie ma na liście jako folderu podrzędnego, wybierz opcję Opcje wykonywania plików obrazów, a następnie opcje Nowy > Klucz z menu kontekstowego.Wybierz nowy klucz, wybierz polecenie Zmień nazwę w menu skrótów, a następnie wpisz nazwę aplikacji.
W menu kontekstowym folderu aplikacji, wybierz polecenie Nowy, Wartość ciągu.
Zmień nazwę nowej wartości z New Value na debuger.
W menu kontekstowym wejścia debugera wybierz Modyfikuj.
W oknie dialogowym Edytuj ciąg, wpisz vsjitdebugger.exe w polu Dane wartości.
Zawartość
Przełączanie procesów, przerywanie i kontynuowanie wykonywania, krokowe przetwarzanie źródła
- Przełączanie między procesami • Polecenia break, step i continue
Przełączanie między procesami
Podczas debugowania można dołączyć elementy do wielu procesów, ale tylko jeden proces jest aktywny w debugerze w danym momencie.Można ustawić aktywny lub bieżący proces w pasku narzędzi debugowania lokalizacji lub w oknie Procesy.Aby przełączyć się między procesami, oba procesy muszą być w trybie przerwania.
Aby ustawić bieżący proces
Na pasku narzędzi debugowania lokalizacji, wybierz Proces , aby wyświetlić pole listy Proces.Wybierz proces, który chcesz wyznaczyć jako proces bieżący.
Jeśli pasek narzędzi Lokalizacja debugowania nie jest widoczny, wybierz kolejno polecenia Narzędzia > Dostosuj.W zakładce Paski narzędzi wybierz polecenie Debugowania lokalizacji.
Otwórz okno Procesy (skrót Ctrl+Alt+Z), znajdź proces, który chcesz ustawić jako bieżący proces i kliknij go dwukrotnie.
Bieżący proces jest oznaczony żółtą strzałką.
Przełączenie do projektów powoduje, że staje się on procesem bieżącym do celów debugowania.Każde okna debugera wyświetlać będzie stan dla bieżącego procesu, a wszystkie polecenia dotyczą tylko bieżącego procesu.
Przełączanie procesów, przerywanie i kontynuowanie wykonywania, krokowe przetwarzanie źródła
Zawartość
Polecenia break, step and continue
[!UWAGA]
Domyślnie, komendy debugera przerwa, kontynuacja i krok wpływają na wszystkie procesy, które są debugowane.Aby zmienić to zachowanie, zobacz Configure the execution behavior of multiple processes.
Polecenie |
Przerwij wszystkie procesy, gdy jeden proces ulegnie przerwaniu Zaznaczone (Domyślne) |
Przerwij wszystkie procesy, gdy jeden proces ulegnie przerwaniu Wyczyszczone |
Menu Debugowanie:
|
Wszystkie procesy zostają przerwane. |
Wszystkie procesy zostają przerwane. |
Menu Debugowanie:
|
Wszystkie procesy są wznawiane. |
Wszystkie wstrzymane procesy wznawiają działanie. |
Menu Debugowanie:
|
Wszystkie procesy trwają wraz z postępem aktualnego procesu. Następnie wszystkie procesy zostaną przerwane. |
Kroki bieżącego procesu. Wstrzymane procesy wznawiają działanie. Działające procesy kontynuują działanie. |
Menu Debugowanie:
|
Nie dotyczy |
Kroki bieżącego procesu. Inne procesy utrzymują istniejący stan (zawieszone lub uruchomione). |
Okno źródłowe
|
Wszystkie procesy zostają przerwane. |
TYlko proces okna źródła przerywa. |
Menu kontekstowe okna źródłowego:
Okno źródłowe musi znajdować się w bieżącym procesie. |
Wszystkie procesy działają, podczas gdy procesu okna źródła działa do kursora a następnie zostaje przerwany. Następnie inne procesy zostaną przerwane. |
Proces okna źródłowego działa do kursora. Inne procesy utrzymują istniejący stan (zawieszone lub uruchomione). |
Menu kontekstowe okna Procesy:
|
Nie dotyczy |
Wybrany proces przerywa działanie. Inne procesy utrzymują istniejący stan (zawieszone lub uruchomione). |
Menu kontekstowe okna Procesy:
|
Nie dotyczy |
Wybrany proces wznawia działanie. Inne procesy utrzymują istniejący stan (zawieszone lub uruchomione). |
Przełączanie procesów, przerywanie i kontynuowanie wykonywania, krokowe przetwarzanie źródła
Zawartość
Zatrzymywanie debugowania, kończenie lub odłączanie od procesów
- Polecenia zatrzymywania, kończenia i odłączania
Domyślnie po wybraniu Debugowanie, Zatrzymaj debugowanie gdy wiele procesów jest otwartych w debugerze, debuger kończy pracę lub odłącza się od wszystkich procesów, w zależności od tego, jak proces został otwarty w debugerze:
Jeśli bieżący proces został uruchomiony w debugerze, ten proces zostanie zakończony.
Jeśli dołączono debugera do bieżącego procesu, debuger odłączy się od procesu i pozostawia proces uruchomiony.
Na przykład jeśli uruchomisz debugowanie procesu z rozwiązania Visual Studio, dołączysz do innego procesu, który jest już uruchomiony, a następnie wybierzesz polecenie Zatrzymaj debugowanie, sesja debugowania zakończy się, proces, który został uruchomiony w programie Visual Studio, zakończony się, podczas gdy dołączony zostanie pozostawiony jako uruchomiony.Można użyć następujących procedur, aby kontrolować sposób zatrzymywania debugowania.
[!UWAGA]
Opcja Przerwij wszystkie procesy, gdy jeden proces zostanie przerwany nie wpływa na zatrzymywanie debugowania ani kończenie i odłączanie od procesów.
Aby zmienić oddziaływanie zatrzymania debugowania na poszczególne procesy
- Otwórz okno Procesy (skrót Ctrl+Alt+Z).Wybierz proces, a następnie zaznacz lub wyczyść pole wyboru Odłącz po zatrzymaniu debugowania.
Polecenia zatrzymywania, kończenia i odłączania
Polecenie |
Opis |
Menu Debugowanie:
|
Jeśli zachowanie nie zostało zmienione w oknie Procesy przez opcję Odłącz po zatrzymaniu debugowania:
|
Menu Debugowanie:
|
Wszystkie procesy są kończone. |
Menu Debugowanie:
|
Debuger odłączy się od wszystkich procesów. |
Menu kontekstowe okna Procesy:
|
Debuger odłączy się od wybranych procesów. Inne procesy utrzymują istniejący stan (zawieszone lub uruchomione). |
Menu kontekstowe okna Procesy:
|
Wybrany proces zostanie zakończony. Inne procesy utrzymują istniejący stan (zawieszone lub uruchomione). |
Menu kontekstowe okna Procesy:
|
Przełącza między debugowaniem i zatrzymaniem debugowania dla wybranego procesu:
|
Zatrzymywanie debugowania, kończenie lub odłączanie od procesów
Zawartość
Zobacz też
Koncepcje
Debugowanie just in time w programie Visual Studio
Inne zasoby
Określanie plików symboli (.pdb) i plików źródłowych w debugerze programu Visual Studio
Dołączanie do uruchomionego procesu za pomocą debugera programu Visual Studio