Udostępnij za pośrednictwem


W czasie debugowania

W czasie debugowania uruchamia Visual Studio automatycznie o wystąpieniu wyjątku lub awarii w aplikacji uruchomionej na zewnątrz Visual Studio.Umożliwia testowanie aplikacji Visual Studio nie jest uruchomione i rozpocząć debugowanie programu Visual Studio, gdy wystąpi problem.

W czasie debugowania nie działa dla aplikacji Windows magazynu.Nie działa w czasie debugowania kodu zarządzanego obsługiwanej w aplikacji macierzystej, na przykład wykorzystasz.

Za pomocą Just In Time debugowania

Podczas instalowania programu Visual Studio, Just In Time debugowanie jest włączone domyślnie.Jeśli musisz wyłączyć lub włączyć ponownie Just In Time debugowania, zobacz Włączanie lub wyłączanie Just In Time debugowania.

Gdy Just In Time debugowanie jest włączone, można przetestować aplikację spoza Visual Studio.Po wystąpieniu awarii lub wyjątek, zostanie wyświetlony komunikat, która wygląda to pojawi się okno dialogowe:

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

Po wyświetleniu tego okna dialogowego można rozpocząć debugowanie z poniższej procedury.

Aby rozpocząć debugowanie, gdy błąd Just In Time występuje

  1. W oknie dialogowym debugowanie JIT w Debugery możliwe kliknij nowe wystąpienie programu Visual Studio 2012 lub kliknij wystąpienie programu Visual Studio, który jest już uruchomiony.

  2. Aby użyć programu Visual Studio automatycznie wszystkie przyszłe wystąpienia awarii, kliknij ustawić debuger aktualnie wybranego jako domyślny.

  3. Jeśli chcesz wybrać, jakie typy kodu będzie można debugować, kliknij ręcznie wybrać debugowania silników.Jeśli ta opcja nie jest wybrana, Visual Studio automatycznie wybiera silników debugowania odpowiedni typ kodu programu.

  4. Kliknij przycisk OK.

  5. Jeśli aplikacja zawiera zestaw o niezaufanym kodem, pojawi się okno dialogowe ostrzeżenia zabezpieczeń.To okno dialogowe pozwala zdecydować, czy kontynuować debugowania.Przed rozpoczęciem debugowania, należy zdecydować, czy zaufać kod.Czy można napisać kod samodzielnie?Czy można ufać koder?Jeśli aplikacja jest uruchomiona na komputerze zdalnym, czy znasz nazwę procesu?Nawet jeśli aplikacja jest uruchomiona lokalnie, że niekoniecznie oznacza, że można ufać.W programie Internet Explorer na przykład złośliwy formant ActiveX może być uruchomiona.Rozważyć możliwość takiego złośliwego kodu uruchomionych na komputerze.Jeżeli zdecydujesz, że kod zamierzasz debugowania jest wiarygodny, kliknij debugowania.W przeciwnym razie kliknij przycisk Don't debugowania.

Włączanie lub wyłączanie Just In Time debugowania

Można włączyć lub wyłączyć debugowanie z Just In Time Opcje okno dialogowe.

Włącz lub wyłącz Just In Time debugowania

  1. Na Narzędzia menu, kliknij Opcje.

  2. W Opcje okno dialogowe Wybierz Debugowanie folder.

  3. W Debugowanie folder wybierz Just In Time strony.

  4. W debugowanie JIT włączanie tych typów kodu zaznacz lub wyczyść typów odpowiednich programów: zarządzane, macierzystego, lub skryptu.

    Aby wyłączyć debugowanie po jej włączeniu Just In Time, zostanie uruchomiony z uprawnieniami administratora.Just In Time Włączanie debugowania Ustawia klucz rejestru i zmienić klucz wymagane są uprawnienia administratora.

  5. Kliknij przycisk OK.

Windows Forms aplikacje mają domyślnie obsługi wyjątków, który umożliwia programowi nadal działać, jeśli można odzyskać.W rezultacie należy wykonać następujące kroki dodatkowe, aby włączyć Just In Time debugowanie aplikacji Windows Forms.

Włącz Just In Time debugowania formularza systemu Windows

  1. Ustaw jitDebugging wartości do 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++ Windows formularza, należy także ustawić DebuggableAttribute w pliku .config lub w kodzie.Jeśli kompilacji z /Zi i bez /Og, kompilator ustawia ten atrybut.Jeśli chcesz debugować-zoptymalizowane wydanej kompilacji, jednak należy ustawić to samodzielnie.Można to zrobić, dodając następujący wiersz, aby użytkownik jest plik AssemblyInfo.cpp aplikacji:

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

    Aby uzyskać więcej informacji, zobacz DebuggableAttribute.

W czasie mogą nadal być włączone debugowanie, nawet jeśli na komputerze już zainstalowano Visual Studio.Jeśli nie zainstalowano programu Visual Studio, nie można wyłączyć debugowanie z programu Visual Studio Just In Time Opcje okno dialogowe.W takim przypadku można wyłączyć debugowanie, edytując rejestr Windows Just In Time.

Aby wyłączyć debugowanie, edytując rejestr Just In Time

  1. Na Start menu Wyszukaj i uruchom regedit.exe

  2. W Edytora 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 na komputerze 64-bitowym systemie operacyjnym, także 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. Nie należy przypadkowo usunąć lub zmienić żadnych kluczy rejestru.

  5. Zamknij Rejestrze edytora okna.

W czasie błędy debugowania

Może pojawić się następujące komunikaty o błędach, które są skojarzone z Just In Time debugowania.

  • Wystąpił wyjątek nieobsłużony win32 w <program>. Just-In-Time debugowanie ten wyjątek nie powiodło się następujący błąd: zalogowany użytkownik nie ma dostępu do debugowania aplikacji ulegać awarii.

    Ten komunikat wskazuje, że Just In Time debugowania nie powiodła się, ponieważ nie masz uprawnień dostępu właściwego.Informacje w wymaganych uprawnień, zobacz Remote Debugging Permissions.

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

    Ten błąd występuje podczas próby dołączenia do procesu uruchomionego jako inny użytkownik w systemie Windows 2000.

    Aby obejść ten problem, Visual Studio, start Otwórz Dołącz do procesu okno dialogowe z debugowania menu i Znajdź proces chcesz debugować w Dostępne procesy listy.Jeśli nie znasz nazwy procesu, spójrz na Visual Studio Debugger JIT okno dialogowe i Uwaga identyfikatora procesu.Wybierz proces w Dostępne procesy listy i kliknij przycisk Attach.W Visual Studio Debugger JIT okno dialogowe, kliknij przycisk nr , aby zamknąć okno dialogowe.

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

    Ten błąd występuje, gdy Just In Time debugowanie próbuje uruchomić na komputerze programu Visual Studio, gdzie nie istnieje żaden użytkownik zalogowany do konsoli.Ponieważ zalogowany użytkownik nie istnieje żadna sesja użytkownika do wyświetlenia Just-In-Time debugowanie okno dialogowe.

    Aby rozwiązać ten problem, należy zalogować się z komputera.

  • Klasa nie jest zarejestrowany.

    Ten błąd wskazuje, debuger próbował utworzyć klasy COM, który nie jest zarejestrowany, prawdopodobnie z powodu problemu z instalacją.

    Aby rozwiązać ten problem, należy użyć dysku instalacyjnego ponownie zainstalować lub naprawić instalację programu Visual Studio.

Zobacz też

Informacje

Just-In-Time, debugowanie, okno dialogowe Opcje

Ostrzeżenie o zabezpieczeniach: Dołączanie do procesu, posiadane przez niezaufany użytkownik może być niebezpieczne. Jeżeli następujące informacje wyglądają podejrzanie lub nie masz pewności, nie dołączyć do tego procesu

Koncepcje

Debuger zabezpieczeń

Inne zasoby

Mapa drogowa debugera