JIT-отладка

Этот раздел применим к:

Выпуск

Visual Basic

C#

F#

C++

Web Developer

Express

Тема не применяется Тема не применяется Тема не применяется Тема не применяется Тема не применяется

Pro, Premium и Ultimate

Тема применяется Тема применяется Тема применяется Тема применяется Тема не применяется

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

JIT-отладка не работает для управляемого кода, размещенного в приложении машинного кода, например для визуализаторов. В случае установки .NET Framework на Windows Server 2003 или на Windows 2000 с пакетом обновления 3 (SP3) или более поздней версии JIT-отладка не будет работать для процессов, выполняющихся под учетной записью с ограниченными правами в сеансе служб терминалов до тех пор, пока компьютер не будет перезагружен.

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

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

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

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

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

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

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

  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. В меню Пуск выберите команду Выполнить.

  2. В диалоговом окне Запуск программы введите regedit и нажмите кнопку ОК.

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

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

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Класс не зарегистрирован.

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

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

См. также

Ссылки

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

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

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

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

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

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

Журнал изменений

Дата

Журнал

Причина

Июль 2010 г.

Сведения собраны в одном разделе для облегчения поиска.

Обратная связь от клиента.

Август 2010 г.

Удалено устаревшее сообщение об ошибке.

Обратная связь от клиента.