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