使用VS2012调试Dump文件
前一节我讲了怎么设置C++崩溃时生成Dump文件 , 点击 传送门 , 这一节我讲讲怎么使用 VS2012 调试生成的 Dump 文件 , 甚至可以精确到出错的那一行代码上面 ;
1. 生成 Dump 文件
我在主函数写了如下崩溃代码 :
int main()
{
// 加入崩溃dump文件功能
SetUnhandledExceptionFilter(ExceptionFilter);
// 使程序崩溃产生 Dump 文件
int *p = NULL;
*p=;
}
双击运行主程序 , 产生了 Dump 文件 DumpDemo_v1.0-20170605-091215.dmp
, 如下图所示 :
2. 打开 Dump 文件
双击打开生成的 Dump 文件 , 会默认用 VS2012 打开并自动创建一个解决方案 , Dump 摘要信息如下 :
一定要确保 进程名称
对应的程序路径在本地存在 , 同时确保最初生成程序的对应 .pdb
符号文件也在当前目录 ;
有时从客户那里反馈回来的 Dump 文件程序路径和本地的不一致 , 需要将程序拷贝到 Dump 信息里面的路径中去 ;
3. 设置 Symbols 路径
调试文件需要对应的符号文件 , 我们需要设置符号文件对应的路径 :
在 Dump 信息摘要右上角 , 点击 设置符号路径
:
推荐使用 Microsoft 符号服务器
, 但第一次在线下载会有点慢 ; 当然也可以自己下载符号集文件到某个路径 , 再讲符号路径指向该路径 :
4. 设置源码路径
在左侧的解决方案处右键点击 属性
-> 调试源文件
, 将源代码的路径添加进来 , 注意一定是解决方案所在的路径 :
5. 调试 Dump 文件
准备工作已就绪 , 现在在 Dump 文件摘要右上角点击 使用 仅限本机 进行调试
:
如果提示
无法找到调试信息 , 或者调试信息不匹配 , 无法查找或打开 PDB 文件
, 说明没有将最初生成程序的对应.pdb
符号文件放在调试程序所在的目录 , 或者.pdb
符号文件与当前的程序版本不匹配 ;
程序会重现当时崩溃前的调用堆栈 , 如下图所示 :
可以看出程序已经定位到了崩溃前的那一行代码 , 非常方便排查 ;
使用VS2012调试Dump文件的更多相关文章
- 自定义VS程序异常处理及调试Dump文件(一)
自定义VS程序异常处理及调试Dump文件(一) 1. Dump文件 1. Dump文件介绍 Dump文件(Dump File),也叫转储文件,以.DMP为文件后缀.dump文件是进程在内存中的镜像文件 ...
- (转)解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题
解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题 开发人员提交一个dump文件(Windows Server 2008 R2),当前调试环境Windows Serve ...
- 调试dump文件
1.设置好pdb文件和源代码路径 为了能正确分析Dump文件,我们必须要指定和程序一起出来的PDB文件,如果程序重新被编译了一次,即使代码没有任何变化,之前的PDB文件我们不能再继续使用.
- 使用VS调试DUMP文件
使用前准备: 1.保存编译文件的PDB文件(要和生成exe文件的对应) 2.在开发机器上,使用vs直接双击打开dmp文件,注意 进程名称 ,这个是程序运行crash的时候所在的目录位置,这个很重要. ...
- dotnet core调试docker下生成的dump文件
最近公司预生产环境.net core应用的docker容器经常出现内存暴涨现象,有时会突然吃掉几个G,触发监控预警,造成容器重启. 分析了各种可能原因,修复了可能发生的内存泄露,经测试本地正常,但是发 ...
- 如何使用dump文件进行调试
转载[文尾出处链接] 1 简介第一次遇到程序崩溃的问题,之前为单位开发了一个插件程序,在本机运行没有出现问题,但把生成的可执行文件拷贝到服务器上一运行程序,刚进入插件代码,插件服务就崩溃了,当时被这个 ...
- windows server dump文件
1. mini dump: ***** 需要包含 dbghelp.dll 库 ****mini_dump.h文件: // reference:https://msdn.microsoft.com/zh ...
- WinDbg分析DUMP文件
1. 如何生成dump文件? 原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件: ...
- The version of SOS does not match the version of CLR you are debugging; SOS.dll版本不匹配; Dump文件不同环境mscordacwks.dll版本问题
The version of SOS does not match the version of CLR you are debugging 和 PDB symbol for clr.dll not ...
随机推荐
- 03-matplotlib-折线图
import numpy as np import matplotlib.pyplot as plt import matplotlib.dates as mdates ''' 折线图,用直线段将各数 ...
- 使用C#把Tensorflow训练的.pb文件用在生产环境
训练了很久的Tf模型,终于要到生产环境中去考研一番了.今天花费了一些时间去研究tf的模型如何在生产环境中去使用.大概整理了这些方法. 继续使用分步骤保存了的ckpt文件 这个貌似脱离不了tensorf ...
- Rabbitmq安装及启动 MAC系统
1.安装 brew install rabbitmq 2.启动及关闭RabbitMQ服务 前台启动 sudo ./rabbitmq-server 或 sudo su/usr/local/Cell ...
- 第39次Scrum会议(12/5)【欢迎来怼】
一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/12/5 11:35~11:57,总计22min.地点:东北师 ...
- 20135231 JAVA实验报告三:敏捷开发与XP实践
---恢复内容开始--- JAVA实验报告三:敏捷开发与XP实践 20135231 何佳 实验内容 1. XP基础 2. XP核心实践 3. 相关工具 实验要求 1.没有Linux基础的同学建议先学习 ...
- 《Spring1之第四次站立会议》
<第四次站立会议> 昨天:我把小组成员找到的写关于登录界面的代码加到了我的项目工程里,并对它有了一定的了解,已经能够编译运行了,得到了登陆的界面: 今天:试着做了一下主框架里的在线人数的显 ...
- max值——单元测试
设计思想 在调试的时候,尽可能的将所有可能出现的情况都考虑到,输入这些情况,查看程序运行的结果 源代码 #include<iostream> using namespace std; in ...
- bug--注意Android编译打包--找不到某某类
http://blog.csdn.net/mad1989/article/details/9142557 看到这篇 才解决问题= = 15,ClassNotFoundException: Didn't ...
- 读《我是IT小小鸟》有感
我是一只IT小小鸟,我与IT结缘.书中是作者对个人经历与经验在IT下的体会,却给了我们很好的借鉴. IT这门行业,不仅仅再局限于如我们高中老师教学所要求的内容.IT更加开放,可以通过GitHub.CS ...
- 使用百度地图api可视化聚类结果
1.写在前面 上接YFCC 100M数据集分析笔记,在对聚类出的照片GEO集聚类后,为了方便检测聚类结果,我们显示直接采用了 python 的 matplotlib 库以经纬度为坐标画出聚类结果,但发 ...