Настройте WinDbg как отладчик по умолчанию

Всякий раз, когда мое приложение генерирует необработанное исключение, я бы хотел, чтобы WinDbg обнаружил это исключение на моей машине для отладки, а не Dr. Watson и т.д. Как это можно настроить?

Ответ 1

Запустите windbg -I, чтобы установить его в отладчик post mortem по умолчанию.

Как указывает Курт ниже, WinDbg поставляется как в 32, так и в 64-разрядных версиях. Выполнение windbg -I устанавливает отладчик post mortem для процессов, соответствующих битте отладчика.

Вы можете установить обе версии WinDbg бок о бок, если вам нужно иметь 32 и 64-битные версии.

В файле справки:

-I[S] Устанавливает WinDbg как отладчик postmortem. Подробнее см. Включение отладки Postmortem. После это действие предпринято, успех или отображается сообщение об ошибке. Если S включено, эта процедура выполнена тихо, если это будет успешным; только отображаются сообщения о сбое. -I параметр не должен использоваться с другие параметры. Эта команда будет фактически не запускать WinDbg, хотя На мгновение может появиться окно WinDbg.

Ответ 2

Вот файл реестра для настройки WinDbg как управляемого отладчика и собственного отладчика:

Windows Registry Editor Version 5.00

;This reg file installs just-in-time debuggers to capture a dump of all process
;crashes for the machine.
;
;Assumes 32-bit debugger is cdb.exe and is installed to C:\debuggers\x86\.
;Assumes 64-bit debugger is cdb.exe and is installed to C:\debuggers\x64\.
;
;Assumes crash dumps can be written to C:\crash_dumps\.
;Make sure all users have write access to this directory.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"DbgManagedDebugger"="\"c:\\debuggers\\x64\\windbg.exe\" -pv -p %ld "
"DbgJITDebugLaunchSetting"=dword:00000002


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Debugger"="\"c:\\debuggers\\x64\\windbg.exe\" -pv -p %ld "
"Auto"="1"


;The following keys are only used on 64-bit versions of Windows (note Wow6432Node).
;They can be safely created with no side-effects on 32-bit versions of Windows.
;Alternatively, you can delete the remainder of this file if you’re running a
;32-bit version of Windows.


[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Debugger"="\"c:\\debuggers\\x86\\windbg.exe\" -pv -p %ld "
"Auto"="1"

Автоматическое взятие дампа при сбое процесса - это запись об этом из команды CLR.