對於程序運行過程中卡死已經能檢測,但是對於一些彈框類的運行出錯卻不知道怎麼檢測,請各位大蝦指點迷津; 現在沒有C幣,如果回答是我想要的,我花錢補上
這不就是編寫一個華醫生麼(注:華醫生是微軟系統上負責處理應用程序崩潰的程序,就是你圖上的“xxx已停止工作,Windows正在聯機查找解決方案”),這是一個應用程序,是在用戶模式下實現的,而並非在內核中實現,其實華醫生也可以卸載掉,卸載之後程序崩潰就變成了“xxx進程試圖訪問的xxx內存,其內存不能為read/write/execute”(或者是壓根沒提示了)。但遺憾的是,微軟並沒有公開華醫生的實現原理,而事實上華醫生也不是微軟本來打算做的,而是微軟公司中一個技術大牛編寫後植入Windows的。當一個應用程序出現異常時,異常會按照這種方法傳遞:調試出錯進程的調試器進程->進程設置的自己的異常處理函數->華醫生。所以華醫生也有其缺陷,因為對於自己設置了異常處理的程序,他捕獲不到異常,比如QQ崩潰,打開的是QQ自己設置的出錯提示窗口,但是我們可以發現,調試器的優先級最高,也就是說,我們可以調試目標進程,在進程崩潰的時候就能最先拿到異常數據了,調試一個進程的方法有兩種,第一種是createprocess時添加一個調試進程的flag,第二種是動態設置調試,是有一個API的,有關調試進程如何獲取異常信息的,網上有很多資料,搜索Windows調試API