前一节我讲了怎么设置C++崩溃时生成Dump文件 , 点击 传送门 , 这一节我讲讲怎么使用 VS2012 调试生成的 Dump 文件 , 甚至可以精确到出错的那一行代码上面 ; 1. 生成 Dump 文件我在主函数写了如下崩溃代码 : int main() { // 加入崩溃dump文件功能 SetUnhandledExceptionFilter(ExceptionFilter); // 使程序崩溃产生 Dump 文件 int *p = NULL; *p=1; } 双击运行主程序 , 产生了 Dump 文件 2. 打开 Dump 文件双击打开生成的 Dump 文件 , 会默认用 VS2012 打开并自动创建一个解决方案 , Dump 摘要信息如下 : 一定要确保 有时从客户那里反馈回来的 Dump 文件程序路径和本地的不一致 , 需要将程序拷贝到 Dump 信息里面的路径中去 ; 3. 设置 Symbols 路径调试文件需要对应的符号文件 , 我们需要设置符号文件对应的路径 : 在 Dump 信息摘要右上角 , 点击 推荐使用 4. 设置源码路径在左侧的解决方案处右键点击 5. 调试 Dump 文件准备工作已就绪 , 现在在 Dump 文件摘要右上角点击
程序会重现当时崩溃前的调用堆栈 , 如下图所示 : 可以看出程序已经定位到了崩溃前的那一行代码 , 非常方便排查 |
|