今天在Code Project最新更新中看到"XCrashReport : Exception Handling and Crash Reporting"一文,泛讀之后,又讀了其中引用的幾篇文章。覺得挺不錯。主要講了VC Relase版本如何定位問題,主要思路是打開Link選項"Generate debug info"、添加參數"/OPT:REF"和/ignore:4089 ",用作Release版本產生PDF,且優化的時候能使產生的目標文件更小。效果比較明顯。
隨便寫了一個會崩潰的工程,崩潰后記錄其崩潰位置,然后隨便打開一款調試器(OD,WinDBG,VC都可)運行debug,然后改EIP到出錯的位置下斷,GO!
其實,在運行出錯的位置,然后改EIP的方法,以前在用OD時會使用到(類似F4或VC調試時的移動EIP),一直覺得ESP和Call Stack應該是分析Crash的重點,有時忽略了EIP的重要性。