在《如何诊断Windows CE的应用程序崩溃》一文中我介绍了如何利用Remote Process Explorer的Crack Address功能定位程序的崩溃地址。但是看起来还是有很多人不知道怎么使用这个工具,这篇文章详细介绍一下。
首先要确保你的PC上有dbghelp.dll。微软没有公开PDB文件格式,不过有解析PDB文件的API,在dbghelp.dll中提供,最新版本可在微软网站上下载。在微软推出.NET Framework之前,基于COM组件编程很流行,因此微软也以COM组件的形式提供了另外一组接口,叫DIA(Debug Interface Access)。Remote Proecess Explorer用dbghelp.dll解析WinCE调试符号,由于WinCE的可执行程序模块使用PE格式,调试符号文件使用PDB格式,和 Windows桌面平台一样。因此它也可以分析Windows桌面应用程序地址。dbghelp.dll可以放到系统目录(c:/windows /system32),或者放到remote process explorer所在目录。
其次应该把EXE/DLL和PDB放在一个目录。如果放在不同目录,dbghelp可能会找不到PDB。