如果一個線程的異常沒有被處理,則Windows的未處理異常過濾器將會被調用。這個函數(shù)根據(jù)注冊表
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
鍵中的內容來對未處理的異常采取一種統(tǒng)一的行為和方法。
該鍵中的
Auto: 決定是自動運行調試器,還是讓用戶決定
Debugger: 是指向調試器可執(zhí)行文件的路徑的字符串
-------------------------------------------------------------------------------------------
據(jù)觀察,在我裝了vs2005之后
"Auto"="1"
"Debugger"="\"C:\\WINDOWS\\system32\\vsjitdebugger.exe\" -p %ld -e %ld"
表示將自動運行調試器
-------------------------------------------------------------------------------------------
而Windows默認的調試器是Dr.Watson
它捕獲應用程序應用程序崩潰狀態(tài),并記錄日志文件(Drwtsn32.log)和進程崩潰轉儲文件(User.dmp)。
要想查看并配置Dr.Watson,可以在運行中輸入Drwtsn32.exe。
要想恢復系統(tǒng)初始狀態(tài)則可以運行 Drwtsn32 -i
這樣注冊表的那兩個值會變成
"Auto"="1"
"Debugger"="drwtsn32 -p %ld -e %ld -g"
-------------------------------------------------------------------------------------------