Настройка автоматической отладки

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

Настройка автоматической отладки для сбоев системы

Чтобы настроить целевой компьютер для создания файла аварийного дампа, когда система перестает отвечать, используйте системное приложение в панель управления. Щелкните "Дополнительные параметры системы", в котором отображается диалоговое окно " Свойства системы". На вкладке "Дополнительно" этого поля щелкните Параметры в разделе "Запуск и восстановление", а затем используйте соответствующие параметры восстановления. Кроме того, можно настроить параметры аварийного дампа с помощью следующего раздела реестра:

\\HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet\Control\CrashControl

Указанный файл — это файл аварийного дампа. Его имя по умолчанию — Memory.dmp. Вы можете выполнить отладку аварийного дампа с помощью отладчика режима ядра, например WinDbg или KD. Дополнительные сведения см. в документации, включенной в отладчик.

Настройка автоматической отладки для сбоев приложений

Когда приложение перестает отвечать (например, после нарушения доступа), система автоматически вызывает отладчик, указанный в реестре для последующей отладки, идентификатор процесса и дескриптор событий передаются отладчику при правильной настройке командной строки. В следующей процедуре описывается, как указать отладчик в реестре.

Установка отладчика в качестве отладчика postmortem

  1. Перейдите к следующему разделу реестра:

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

  2. Добавьте или измените значение отладчика, используя строку REG_SZ, указывающую командную строку отладчика .

    Строка должна содержать полный путь к исполняемому файлу отладчика. Укажите идентификатор процесса и дескриптор событий с параметрами "%ld" в командной строке отладчика. Разные отладчики могут иметь собственные синтаксисы параметров для указания этих значений. При вызове отладчика первый "%ld" заменяется идентификатором процесса, а второй "%ld" заменяется дескриптором события.

    Следующий текст является примером настройки WinDbg в качестве отладчика.

    "C:\debuggers\windbg.exe" -p %ld -e %ld -g
    
  3. Если требуется, чтобы отладчик был вызван без взаимодействия с пользователем, добавьте или измените автоматическое значение, используя строку REG_SZ, указывающую, должна ли система отображать диалоговое окно пользователю перед вызовом отладчика. Строка "1" отключает диалоговое окно; Строка "0" включает диалоговое окно.

Исключение приложения из автоматической отладки

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

Исключение приложения из автоматической отладки

  1. Перейдите к следующему разделу реестра:

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

  2. Добавьте значение REG_DWORD в подраздел AutoExclusionList , где имя — имя исполняемого файла и значение равно 1. По умолчанию диспетчер окон рабочего стола (Dwm.exe) исключается из автоматической отладки, так как в противном случае может произойти взаимоблокировка системы, если Dwm.exe перестает отвечать (пользователь не может видеть интерфейс, отображаемый отладчиком, так как Dwm.exe не отвечает, и Dwm.exe не может завершиться, так как он хранится отладчиком).

    Windows Server 2003 и Windows XP:подраздел AutoExclusionList недоступен. Таким образом, невозможно исключить любое приложение, включая Dwm.exe, из автоматической отладки.

Записи реестра AeDebug по умолчанию можно представить следующим образом:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows NT
            CurrentVersion
               AeDebug
                  Auto = 1
                  AutoExclusionList
                     DWM.exe = 1

Включение отладки postmortem с помощью WinDbg