Включение отладки с JIT-присоединением
Обновлен: Ноябрь 2007
Отладка с JIT-присоединением означает присоединение отладчика к исполняемому образу, который создает неперехваченное исключение. В неуправляемом коде это происходит каждый раз при отображении окна сообщений, которое предлагает:
Нажать кнопку "ОК", чтобы завершить программу
Нажать кнопку "Отмена", чтобы запустить отладку программы
После нажатия кнопки "Отмена" отладчик запускается и присоединяется к процессу. Управление данным процессом осуществляется разделом реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\AeDebug.
Для приложения, содержащего управляемый код, JIT-присоединение отладчика выполняется в среде CLR в аналогичном диалоговом окне. Этим параметром управляет следующий раздел реестра: HKEY_LOCAL_MACHINE\\Software\\Microsoft\\.NETFramework\\DbgJITDebugLaunchSetting.
Если значение равно нулю, пользователь получает запрос в виде сообщения. Это применяется только к процессам, взаимодействующим с рабочим столом; службы и прочие процессы, не участвующие во взаимодействии, будут завершены.
В .NET Framework версий 1.0 и 1.1 или в .NET Framework версии 2.0 в Windows 98 и Windows Mе окно сообщения предлагает выполнить следующие действия.
Продолжить. Выполняется вывод дампа стека на консоль, после чего процесс завершается.
Присоединить отладчик. В этом случае среда выполнения вызовет отладчик, указанный в разделе реестра DbgManagedDebugger. Если отладчик отсутствует, процесс завершается.
В .NET Framework версии 2.0 для платформ, отличных от Windows 98 и Windows Mе, окно сообщения предлагает выполнить следующие действия.
Отправить. В компанию Майкрософт направляется отчет об ошибке, после чего процесс завершается. Сведения об извлечении отчетов см. на веб-узле http://winqual.microsoft.com.
Не отправлять. Выводится дамп стека на консоль, и процесс завершается.
Отладка. В этом случае среда выполнения вызовет отладчик, указанный в разделе реестра DbgManagedDebugger. Если отладчик отсутствует, процесс завершается.
Если значение равно 1, управление возвращается. Выводится дамп стека, после чего процесс завершается.
Если значение равно 2, среда выполнения вызовет отладчик из раздела реестра DbgManagedDebugger.
Если значение равно 16, среда выполнения выводит вышеупомянутое окно сообщения для процессов, взаимодействующих с рабочим столом (только в .NET Framework версии 2.0). Для процессов, не участвующих во взаимодействии, среда выполнения вызывает отладчик из раздела реестра DbgManagedDebugger. Этот параметр применяется по умолчанию в .NET Framework версии 2.0.