如果一个线程的异常没有被处理,则Windows的未处理异常过滤器将会被调用。这个函数根据注册表
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
键中的内容来对未处理的异常采取一种统一的行为和方法。
该键中的
Auto: 决定是自动运行调试器,还是让用户决定
Debugger: 是指向调试器可执行文件的路径的字符串
-------------------------------------------------------------------------------------------
据观察,在我装了vs2005之后
"Auto"="1"
"Debugger"="\"C:\\WINDOWS\\system32\\vsjitdebugger.exe\" -p %ld -e %ld"
表示将自动运行调试器
-------------------------------------------------------------------------------------------
而Windows默认的调试器是Dr.Watson
它捕获应用程序应用程序崩溃状态,并记录日志文件(Drwtsn32.log)和进程崩溃转储文件(User.dmp)。
要想查看并配置Dr.Watson,可以在运行中输入Drwtsn32.exe。
要想恢复系统初始状态则可以运行 Drwtsn32 -i
这样注册表的那两个值会变成
"Auto"="1"
"Debugger"="drwtsn32 -p %ld -e %ld -g"
-------------------------------------------------------------------------------------------