JIT-отладка

JIT-отладка автоматически запускает Visual Studio при возникновении исключения или неустранимой ошибки в программе, запущенной вне Visual Studio.Это позволяет тестировать приложение, не запуская Visual Studio, и начинать отладку в Visual Studio при возникновении проблемы.

JIT-отладка не работает для приложений хранилища Windows.JIT-отладка не работает для управляемого кода, размещенного в приложении машинного кода, например для визуализаторов.

Использование JIT-отладки

При установке Visual Studio JIT-отладка включается по умолчанию.Если требуется отключить или снова включить JIT-отладку, см. раздел Включение или отключение JIT-отладки.

Когда JIT-отладка включена, можно тестировать приложение вне Visual Studio.При возникновении неустранимой ошибки или исключения открывается диалоговое окно с сообщением приблизительно следующего вида:

Необработанное исключение ("System.TypeInitializationException") в terrarium.exe[3384]

Когда открывается это диалоговое окно, можно начать отладку с помощью следующей процедуры.

Запуск JIT-отладки в случае возникновения ошибки

  1. В диалоговом окне JIT-отладка выберите в списке Доступные отладчики, нажмите кнопку новый экземпляр Visual Studio 2012 или выберите экземпляр Visual Studio, уже выполняется.

  2. Для использования Visual Studio для всех будущих сбоев автоматическое предоставление нажмите кнопку Установите выбранный в данный момент отладчик по умолчанию.

  3. Если нужно выбрать типы кода для отладки, нажмите кнопку Выбрать отладчики вручную.Если этого не сделать, Visual Studio автоматически выбирает отладчики, подходящие для типа кода в приложении.

  4. Нажмите кнопку ОК.

  5. Если приложение содержит сборку с недоверенным кодом, появится диалоговое окно с предупреждением системы безопасности.Это диалоговое окно позволяет выбрать, следует ли продолжать отладку или нет.Перед продолжением отладки решите, доверяете ли вы данному коду.Этот код написан вами самостоятельно?Доверяете ли вы автору кода?Если приложение выполняется на удаленном компьютере, узнаете ли вы имя процесса?Даже если приложение выполняется на локальном компьютере, это не обязательно означает, что ему можно доверять.Например, в браузере Internet Explorer мог быть запущен вредоносный элемент управления ActiveX.Учитывайте возможность выполнения такого вредоносного кода на вашем компьютере.Если вы решите, что можете доверять коду, который требуется отлаживать, нажмите Отладить.В противном случае нажмите кнопку Не отлаживать.

Включение или отключение JIT-отладки

JIT-отладку можно включить или отключить из диалогового окна Параметры.

Включение или отключение JIT–отладки

  1. В меню Сервис выберите пункт Параметры.

  2. В диалоговом окне Параметры выберите папку Отладка.

  3. В папке Отладка выберите страницу JIT.

  4. В поле Включить JIT–отладку для следующих типов кода выберите или отмените выбор соответствующих типов программ: Управляемый, Машинный или Скрипт.

    Чтобы отключить JIT–отладку, если она была включена, необходимы права администратора.Включение JIT–отладки устанавливает раздел реестра. Для его изменения требуются права администратора.

  5. Нажмите кнопку ОК.

По умолчанию для приложений Windows Forms имеется обработчик исключений верхнего уровня, позволяющий программе продолжать работу, если возможно восстановление после ошибки.В результате для включения JIT-отладки для приложений Windows Forms необходимо выполнить следующие дополнительные действия.

Включение JIT-отладки для приложений Windows Forms

  1. Присвойте значение true параметру jitDebugging, который находится в разделе system.windows.form файла machine.config или файла имя приложения.exe.config.

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>
    
  2. Для приложений Windows Form, написанных на языке C++, в файле CONFIG или в коде должен быть задан атрибут DebuggableAttribute.Если компиляция выполняется с опцией /Zi, но без опции /Og, компилятор сам задаст этот атрибут.Однако если требуется отладка неоптимизированного построения выпуска, этот атрибут необходимо задать самостоятельно.Для этого добавьте следующую строку в файл AssemblyInfo.cpp своего приложения:

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

    Дополнительные сведения см. в разделе DebuggableAttribute.

JIT-отладка может оставаться включенной даже после удаления Visual Studio с компьютера.Если Visual Studio не установлен, JIT-отладку невозможно отключить из диалогового окна Параметры Visual Studio.В таком случае JIT-отладку можно отключить, отредактировав реестр Windows.

Отключение JIT-отладки путем редактирования реестра

  1. В меню Пуск, поиск и сеансе regedit.exe

  2. В окне Редактор реестра найдите и удалите следующие разделы реестра:

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

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

  3. Если на компьютере установлена 64-разрядная операционная система, также удалите следующие разделы реестра:

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

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

  4. Будьте внимательны, чтобы случайно не удалить или не изменить какие-либо другие разделы реестра.

  5. Закройте окно Редактор реестра.

Ошибки JIT-отладки

Могут отображаться следующие сообщения об ошибках, связанные с JIT–отладкой.

  • Необработанное исключение Win32 произошло в <программа>. JIT-отладка этого исключения завершилась следующей ошибкой: зарегистрированный в системе пользователь не имел доступа к отладке аварийно завершающего работу приложения

    Данное сообщение указывает на то, что JIT–отладка завершилась неудачно, так как пользователь не имеет необходимых прав доступа.Дополнительные сведения о требуемых разрешениях см. в разделе Remote Debugging Permissions.

  • Не удается присоединиться к аварийному процессу.Указанная программа не является программой Windows или MS–DOS.

    Эта ошибка возникает при попытке подключиться к процессу в качестве другого пользователя под управлением Windows 2000.

    В качестве решения этих проблем Visual Studio, открытие диалогового окна Присоединение к процессу запустить из меню Отладка и найти процесс, который требуется отладить, в списке Доступные процессы.Если имя процесса не известно, откройте диалоговое окно JIT–отладчик Visual Studio и запомните идентификатор процесса.Выберите процесс в списке Доступные процессы и щелкните Присоединить.В диалоговом окне JIT–отладчик Visual Studio выберите Нет, чтобы закрыть диалоговое окно.

  • Не удалось запустить отладчик, поскольку пользователь не вошел в систему.

    Эта ошибка возникает, если JIT-отладка пытается запустить Visual Studio на компьютере, где пользователь внесенный в журнал на консоль.Так как пользователи, выполнившие вход, отсутствуют, также отсутствует сеанс пользователя, в котором следовало бы отображать диалоговое окно JIT–отладки.

    Для решения этой проблемы необходимо войти в компьютер.

  • Незарегистрированный класс.

    Эта ошибка указывает, что отладчик пытался создать класс COM, который не зарегистрирован, вероятно, из–за проблем с установкой.

    Чтобы устранить эту проблему, используйте диск установки для переустановки или восстанавливать свою установку Visual Studio.

См. также

Ссылки

Страница "JIT-отладка", папка "Отладка", диалоговое окно "Параметры"

Предупреждение безопасности. Присоединение к процессу, который принадлежит пользователю, не являющемуся доверенным, может быть опасным. Если следующие сведения не вызывают доверия, то не следует присоединяться к процессу.

Основные понятия

Безопасность отладчика

Другие ресурсы

Путеводитель по отладчику