Udostępnij za pośrednictwem


Debugowanie just in time w programie Visual Studio

W czasie debugowania uruchamia program Visual Studio automatycznie po wyjątku lub awarii występuje w aplikacji uruchomionej na zewnątrz programu Visual Studio.Dzięki temu można przetestować aplikację, gdy nie jest uruchomiony program Visual Studio i rozpocząć debugowanie w programie Visual Studio w przypadku wystąpienia problemu.

Debugowanie w czasie nie działa w przypadku aplikacji ze Sklepu Windows.Debugowanie w czasie nie działa w przypadku kodu zarządzanego, który znajduje się w domyślnej aplikacji, takich jak Visualizers.

Przy użyciu tylko w czasie debugowania

Po zainstalowaniu programu Visual Studio, tylko w czasie debugowania jest domyślnie włączony.Jeśli musisz wyłączyć lub włączyć ponownie tylko w czasie debugowania, zobacz Restrict, aby tylko mój kod.

Gdy tylko w czasie debugowania jest włączony, można przetestować aplikację poza programem Visual Studio.W przypadku awarii lub wyjątek będzie widać pojawia się okno dialogowe z komunikatem, który wygląda następująco:

Wystąpił nieobsługiwany wyjątek (System.TypeInitializationException) w terrarium.exe[3384]

Po wyświetleniu tego okna dialogowego można rozpocząć debugowanie z następującej procedury.

Aby rozpocząć debugowanie, gdy błąd tylko w czasie wystąpienia

  1. W oknie dialogowym Just-In-Time debugowania w możliwe debugery kliknij nowe wystąpienie programu Visual Studio 2013 lub kliknij przycisk wystąpienia programu Visual Studio, która jest już uruchomiona.

  2. Aby użyć programu Visual Studio automatycznie dla wszystkich przyszłych awarie, kliknij przycisk ustawić debuger obecnie wybrany jako domyślny.

  3. Jeśli chcesz wybrać typy kodu można debugować, kliknij przycisk ręcznie wybrać aparaty debugowania.Jeśli ta opcja nie jest wybrana, programu Visual Studio automatycznie wybiera aparaty debugowania odpowiedniego dla typu kodu w programie.

  4. Kliknij przycisk OK.

  5. Jeśli aplikacja zawiera zestaw o niezaufanego kodu, pojawi się okno dialogowe z ostrzeżeniem zabezpieczeń.To okno dialogowe umożliwia zdecydować, czy kontynuować debugowania.Przed kontynuowaniem debugowania, zdecydować, czy kod jest zaufane.Czy piszesz kod samodzielnie?Czy można ufać koder?Jeśli aplikacja jest uruchomiona na komputerze zdalnym, czy znasz nazwę procesu?Nawet wtedy, gdy aplikacja jest uruchomiona lokalnie, który nie musi oznaczać, że może to być zaufane.W programie Internet Explorer na przykład złośliwego formant ActiveX może być uruchomiony.Należy rozważyć możliwość takiej złośliwego kodu na komputerze.Jeśli zdecydujesz się, że kod zamierzasz debugowania jest zaufane, kliknij przycisk debugowanie.W przeciwnym razie kliknij przycisk debugowanie nie.

Włączanie lub wyłączanie tylko w czasie debugowania

Można włączyć lub wyłączyć debugowania z tylko w czasie opcje okno dialogowe.

Włącz lub wyłącz tylko w czasie debugowania

  1. W menu Narzędzia kliknij polecenie Opcje.

  2. W opcje wybierz pozycję debugowanie folder.

  3. W debugowanie folder, wybierz opcję tylko w czasie strony.

  4. W Just-In-Time Włącz debugowanie z tych typów kodu wybierz lub wyczyść typów odpowiednich programów: zarządzanego, macierzystego, lub skryptu.

    Aby wyłączyć debugowanie, gdy został włączony tylko w czasie, musi być uruchomiona z uprawnieniami administratora.Włączanie tylko w czasie debugowania Ustawia klucz rejestru, a wymagane są uprawnienia administratora, aby zmienić tego klucza.

  5. Kliknij przycisk OK.

Domyślnie aplikacje Windows Forms mają program obsługi wyjątków najwyższego poziomu, który umożliwia programowi mogło działać, jeśli można go odzyskać.W związku z tym należy wykonać następujące kroki dodatkowe, aby włączyć tylko w czasie debugowania aplikacji Windows Forms.

Włącz tylko w czasie debugowania formularza systemu Windows

  1. Ustaw jitDebugging wartość, która ma true w w system.windows.form sekcji machine.config lub aplikacji. exe.config pliku:

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>
    
  2. W aplikacji C++ formularz systemu Windows, należy ustawić DebuggableAttribute w pliku .config lub w kodzie.Jeśli kompilacji z /Zi i bez /Og, kompilator ustawia tego atrybutu.Jeśli chcesz debugować kompilację wersji nie jest zoptymalizowana, jednak należy ustawić to samodzielnie.Można to zrobić, dodając następujący wiersz do użytkownika w przypadku pliku AssemblyInfo.cpp aplikacji:

    [assembly:System::Diagnostics::DebuggableAttribute(true, true)]; 
    

    Aby uzyskać więcej informacji, zobacz DebuggableAttribute.

Debugowanie w czasie nadal można włączyć, nawet jeśli program Visual Studio nie jest już zainstalowane na tym komputerze.Gdy nie jest zainstalowany program Visual Studio, nie można wyłączyć debugowanie z programu Visual Studio tylko w czasie opcje okno dialogowe.W takim przypadku można wyłączyć debugowanie, edytując rejestr systemu Windows tylko w czasie.

Aby wyłączyć debugowanie, edytując rejestr tylko w czasie

  1. Na Start menu, wyszukiwanie i uruchom regedit.exe

  2. W Edytor rejestru okna, zlokalizuj i Usuń następujące klucze rejestru:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

  3. Jeśli komputer jest uruchomiony w 64-bitowym systemie operacyjnym, również usunąć następujące klucze rejestru:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger

  4. Zwrócić uwagę, aby nie może przypadkowo usunąć lub zmienić klucze rejestru.

  5. Zamknij rejestrze edytora okna.

Błędy debugowania w czasie

Może dojść następujące komunikaty o błędach są skojarzone z tylko w czasie debugowania.

  • Nie można dołączyć do zawieszać procesu. Określony program nie jest program Windows lub MS-DOS.

    Ten błąd występuje, gdy użytkownik próbuje dołączyć do procesu uruchomionego jako inny użytkownik w systemie Windows 2000.

    Aby rozwiązać ten problem, uruchomienia programu Visual Studio, otwórz dołączyć do procesu okno dialogowe z debugowanie menu i Znajdź proces chcesz debugować w dostępne procesy listy.Jeśli nie znasz nazwę procesu, sprawdź programu Visual Studio Debugger Just-In-Time okno dialogowe i zanotuj identyfikatora procesu.Wybierz proces w dostępne procesy list i kliknij przycisk Attach.W programu Visual Studio Debugger Just-In-Time okno dialogowe, kliknij przycisk nr , aby zamknąć okno dialogowe.

  • Nie można uruchomić debugera, ponieważ żaden użytkownik nie jest zalogowany.

    Ten błąd występuje, gdy tylko w czasie debugowania próbuje uruchomić program Visual Studio na komputerze w przypadku, gdy nie jest żaden użytkownik zalogowany do konsoli.Użytkownik nie jest zalogowany, więc nie istnieje nie sesji użytkownika, aby wyświetlić tylko razem debugowanie okno dialogowe.

    Aby rozwiązać ten problem, zaloguj się na komputerze.

  • Klasa nie jest zarejestrowana.

    Ten błąd wskazuje, że debuger próbowała utworzyć klasy modelu COM, które nie jest zarejestrowane, prawdopodobnie z powodu problemu z instalacji.

    Aby rozwiązać ten problem, należy użyć dysku konfiguracji do Zainstaluj ponownie lub napraw instalację programu Visual Studio.

Zobacz też

Informacje

Just-in-time, debugowanie, opcje ― Okno dialogowe

Ostrzeżenie o zabezpieczeniach: Dołączanie do procesu niezaufanego użytkownika może być niebezpieczne. Jeżeli następujące informacje wydają się podejrzane lub niepewne, nie należy podłączać się do procesu.

Koncepcje

Zabezpieczenia debugera

Inne zasoby

Plany rozwoju debugera