今天在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的重要性。