JIT-отладка в Visual Studio
JIT-отладка автоматически запускает Visual Studio при возникновении исключения или неустранимой ошибки в программе, запущенной вне Visual Studio. Это позволяет тестировать приложение, не запуская Visual Studio, и начинать отладку в Visual Studio при возникновении проблемы.
JIT-отладка не работает для приложений для Магазина Windows. JIT-отладка не работает для управляемого кода, размещенного в приложении машинного кода, например для визуализаторов.
Использование JIT-отладки
При установке Visual Studio JIT-отладка включается по умолчанию. Сведения об отключении и повторном включении JIT-отладки см. в разделе Restrict stepping to Just My Code.
Когда JIT-отладка включена, можно тестировать приложение вне Visual Studio. При возникновении неустранимой ошибки или исключения открывается диалоговое окно с сообщением приблизительно следующего вида:
Необработанное исключение ("System.TypeInitializationException") в terrarium.exe[3384]
Когда открывается это диалоговое окно, можно начать отладку с помощью следующей процедуры.
Запуск JIT-отладки в случае возникновения ошибки
В диалоговом окне "JIT-отладка" в списке Доступные отладчики выберите пункт Новый экземпляр Visual Studio 2013 или выберите уже работающий экземпляр Visual Studio.
Чтобы автоматически использовать Visual Studio для всех будущих сбоев, выберите команду Использовать выбранный отладчик по умолчанию.
Если нужно выбрать типы кода для отладки, нажмите кнопку Выбрать отладчики вручную. Если этого не сделать, Visual Studio автоматически выбирает отладчики, подходящие для типа кода в приложении.
Нажмите кнопку ОК.
Если приложение содержит сборку с недоверенным кодом, появится диалоговое окно с предупреждением системы безопасности. Это диалоговое окно позволяет выбрать, следует ли продолжать отладку или нет. Перед продолжением отладки решите, доверяете ли вы данному коду. Этот код написан вами самостоятельно? Доверяете ли вы автору кода? Если приложение выполняется на удаленном компьютере, узнаете ли вы имя процесса? Даже если приложение выполняется на локальном компьютере, это не обязательно означает, что ему можно доверять. Например, в браузере Internet Explorer мог быть запущен вредоносный элемент управления ActiveX. Учитывайте возможность выполнения такого вредоносного кода на вашем компьютере. Если вы решите, что можете доверять коду, который требуется отлаживать, нажмите Отладить. В противном случае нажмите кнопку Не отлаживать.
Включение или отключение JIT-отладки
JIT-отладку можно включить или отключить из диалогового окна Параметры.
Включение или отключение JIT–отладки
В меню Сервис выберите пункт Параметры.
В окне Параметры выберите папку Отладка.
В папке Отладка выберите страницу JIT.
В поле Включить JIT–отладку для следующих типов кода выберите или отмените выбор соответствующих типов программ: Управляемый, Машинный или Скрипт.
Чтобы отключить JIT–отладку, если она была включена, необходимы права администратора. Включение JIT–отладки устанавливает раздел реестра. Для его изменения требуются права администратора.
Нажмите кнопку ОК.
По умолчанию для приложений Windows Forms имеется обработчик исключений верхнего уровня, позволяющий программе продолжать работу, если возможно восстановление после ошибки. В результате для включения JIT-отладки для приложений Windows Forms необходимо выполнить следующие дополнительные действия.
Включение JIT-отладки для приложений Windows Forms
Присвойте значение true параметру jitDebugging, который находится в разделе system.windows.form файла machine.config или файла приложение.exe.config:
<configuration> <system.windows.forms jitDebugging="true" /> </configuration>
Для приложений 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-отладки путем редактирования реестра
В меню Пуск найдите и запустите regedit.exe.
В окне Редактор реестра найдите и удалите следующие разделы реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
Если на компьютере установлена 64-разрядная операционная система, также удалите следующие разделы реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
Будьте внимательны, чтобы случайно не удалить или не изменить какие-либо другие разделы реестра.
Закройте окно Редактор реестра.
Ошибки JIT-отладки
Могут отображаться следующие сообщения об ошибках, связанные с JIT–отладкой.
Не удалось подключиться к аварийно завершающему выполнение процессу. Указанная программа не является программой Windows или MS–DOS.
Эта ошибка возникает при попытке подключиться к процессу в качестве другого пользователя под управлением Windows 2000.
Чтобы обойти эту проблему, запустите Visual Studio, откройте диалоговое окно Присоединение к процессу в меню Отладка и найдите процесс, для которого требуется выполнить отладку, в списке Доступные процессы. Если имя процесса не известно, откройте диалоговое окно JIT–отладчик Visual Studio и запомните идентификатор процесса. Выберите процесс в списке Доступные процессы и щелкните Присоединить. В диалоговом окне JIT–отладчик Visual Studio выберите Нет, чтобы закрыть диалоговое окно.
Не удалось запустить отладчик, поскольку пользователь не вошел в систему.
Данная ошибка возникает, когда JIT–отладка пытается запустить Visual Studio на компьютере, на котором нет пользователей, вошедших в консоль. Так как пользователи, выполнившие вход, отсутствуют, также отсутствует сеанс пользователя, в котором следовало бы отображать диалоговое окно JIT–отладки.
Для решения этой проблемы необходимо войти в компьютер.
Класс не зарегистрирован.
Эта ошибка указывает, что отладчик пытался создать класс COM, который не зарегистрирован, вероятно, из–за проблем с установкой.
Чтобы решить эту проблему, используйте установочный диск для переустановки или восстановления установки Visual Studio.
См. также
Ссылки
Страница "JIT-отладка", папка "Отладка", диалоговое окно "Параметры"