Системный отладчик Windows


В Windows сушествует концепция системного "отладчика".

На самом деле этот отладчик вовсе не является отладчиком, он только делает дамп памяти и складывает его в текстовый файл IE DrWatson

Текущий системный отладчик контроллируется ключем регистра HKLM\Software\Microsoft\Windows NT\AeDebug. Некотарая документация MS говорит что под Win9x информация отладчика сохраняется в .INI-файле, но кажется что ключ регистра имеет преимущество.

Стандартная инсталляция Windows устанавливает по умолчанию отладчиком программу DrWatson. Если вы установили MC VC++, то это заменяет DrWatson на отладчик VC++.

Если вы запустили 32-разрядный отладчик Clarion и установили его как системный отладчик, то результатом будет возникновение GPF.

Для возврата DrWatson-а как системного отладчика по умолчанию запустите команду "DrWtsn32 -i"

Собственно в регистре имеется 3 значения, по одному из которых ("UserDebuggerHotKey") я не мог найти вообще никакой документацииl.

Другие два "Debugger" и "Auto". 

Значение для поля Debugger указывает команду для отладчика, который будет использоваться для анализа ошибок программы. Если значение для поля Debugger найдено, то система проверяет установлено ли значение поля Auto в 0 или в 1.

Если значение поля Auto = 0, система формирует окно сообщения, которое извещает вас что возникла ошибка программы. Если угазанное значение в поле Debugger задает правильную команду отладчика, то окно сообщения выводит две кнопки: OK и Cancel. Если вы нажмете OK, то программа завершится. при нажатии кнопки Cancel, запускается указанный отладчик. Если зачение поля Debugger пусто, то окно сообщения выведет только кнопку OK. 

Если значение поля Auto = 1 и значение поля Debugger определяет допустимый отладчик, система автоматически запускает отладчик и не выводит окно сообщения. 

Статьи MSKB  Q121434 ("Specifying the Debugger for Unhandled User Mode Exceptions') и Q188296 ("How to Disable Dr. Watson for Windows NT") описывают как установить и сбросить системный отладчик.