使用.dmp+vs分析异常

摘要:
环境准备公共符号缓存目录在系统临时目录之外的地方创建一个目录如d:\VsSymbolsCache\应用程序文件目录运行相关文件.exe.dll资源文件等.pdb如d:\MyApplication\过程配置“VS˃工具˃选项˃调试”中各选项常规不勾选【启用“仅我的代码”】Release版的应用程序在编译时经过了vs优化,勾选此选项后无法显示我们的代码,而Debug版没有这个问题不勾选【要求源文件与原
环境准备

公共符号缓存目录

在系统临时目录之外的地方创建一个目录
如d:\VsSymbolsCache\

应用程序文件目录

运行相关文件
.exe
.dll
资源文件等
.pdb

如d:\MyApplication\

过程

配置“VS>工具>选项>调试”中各选项

常规

  • 不勾选【启用“仅我的代码”】
  • Release版的应用程序在编译时经过了vs优化,勾选此选项后无法显示我们的代码,而Debug版没有这个问题
  • 不勾选【要求源文件与原始版本完全匹配】
  • 勾选【为断点和当前语句突出显示整个源行】

符号

  • 勾选“Microsoft符号服务器”,并在下面的“在此目录下缓存符号”的文字框中填写设置的公共符号目录(d:\VsSymbolsCache\)
  • 单击新建符号目录按钮,填写应用程序的.pdb文件所在的目录(d:\MyApplication\)

使用VS打开.dmp文件,单击“使用混合进行调试”后等半天

可以打开“输出”窗口与“模块”窗口看相关的信息

通过各窗口查看StackTrace(主要是找到引发崩溃的异常所在线程)

“并行堆栈”窗口
图形方式显示所有线程的StackTrace
在此窗口中右键“显示外部代码”后就能在各个能显示StackTrace的窗口中直接显示托管代码(若有源文件)
“线程”窗口
列表所有线程
一般线程名显示为“RtlRaiseException”的线程是抛出托管异常的线程
先观察“优先级别”高的线程
“调用堆栈”窗口
看当前线程的StackTrace

免责声明:文章转载自《使用.dmp+vs分析异常》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS7使用RPM安装Package遇到 error: Failed dependencies,解决方案。最优化 梯度 海塞矩阵下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Spring boot中最大连接数、最大线程数与最大等待数在生产中的异常场景

在上周三下午时,客户、业务和测试人员同时反溃生产环境登录进入不了系统,我亲自测试时,第一次登录进去了,待退出后再登录时,复现了客户的问题,场景像是请求连接被拒绝了,分析后判断是spring boot的连接数使用完了,于是重启了服务,客户访问都恢复正常。虽然问题暂时解决了,但实质原因还无法确定。根据分析,判断是spring boot服务连接被拒绝,查看配置的...

Linux 多线程应用中如何编写安全的信号处理函数

http://blog.163.com/he_junwei/blog/static/1979376462014021105242552/ http://www.ibm.com/developerworks/cn/linux/l-cn-signalsec/ Linux 多线程应用中编写安全的信号处理函数 在开发多线程应用时,开发人员一般都会考虑线程安全,会...

Java多线程-Object.wait()

  sleep()和yield()方法,不会释放锁,而wait()方法会释放当前线程的锁,所以,wait()方法必须是在同步代码块中调用。 应用场景   多个线程合作执行某项任务的时候,有线程A和线程B,它们使用同一对象锁,同一时间它们只有其中之一可以运行,另外一个线程处于等待状态。如下事件图表所示   线程A和线程B使用同一个把锁   线程A工作时,...

Android ----------------- 面试题 整理 一

1. XML的解析方式都有哪些? 每一种解析方式的运行流程? 设XML为:<a>a<b>bc<c>c1</c></b></a> Dom SAXPull 2.<a>a<b>bc<c>c1</c></b></a>...

转:Delphi中使用比较少的一些语法

http://www.cnblogs.com/Murphieston/p/5577836.html本文是为了加强记忆而写,这里写的大多数内容都是在编程的日常工作中使用频率不高的东西,但是又十分重要。 ---Murphy 1,构造和析构函数: a,构造函数: 一般基于TComponent组件的派生类,都应该使用overload关键字进行继承,Delp...

Python3的threading模块 lock、Rlock的使用

Python3的threading模块 lock、Rlock的使用 一、概述 在使用多线程的应用下,如何保证线程安全,以及线程之间的同步,或者访问共享变量等问题是十分棘手的问题,也是使用多线程下面临的问题,如果处理不好,会带来较严重的后果,使用python多线程中提供Lock 、Rlock 、Semaphore 、Event 、Condition 用来保证...