1、Crash Dump文件

Crash Dump(后缀名为:.dmp)文件是进程的内存镜像,可以把程序运行时的状态完整的保存下来,是调试异常程序重要的方法,所以程序崩溃时,除了日志文件,dump文件便成了我们查找错误的最后一根救命的稻草。

2、在Windows中使用Windows Error Reporting保存Crash Dump文件

产生Crash Dump文件的方法不止这一种,这里我介绍这种使用Windows Error Reporting(以下简称WER) 的方法。

相较于其他方法WER的优势在于:

1.从Windows Server 2008以后,WER就加入了Windows中,我们现在的系统不需要再安装什么软件,仅仅只需要设置一下配置文件,然后启动服务便可以捕获Crash Dump文件了。

2.和使用其他工具的方式来比较,WER不会影响性能,这使得我们在生产环境上也可以随意打开这项服务,并且毫无副作用。

3、配置Windows Error Reporting

a) 设置WER

WER的配置项在注册表中。

1、打开regedit(注册表编辑器)。

2、找到下面这个项

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps

3、在他下面创建一个项,名字为你要检测的程序名。

此项中需要4个值配置

值:DumpFolder, 类型:REG_EXPAND_SZ - 顾名思义,就是存储dump的位置

值:DumpCount, 类型:REG_DWORD - 最大保留的dump个数,默认为10.

值:DumpType, 类型:REG_DWORD - Dump类型,0:Custom dump, 1: Mini dump, 2: Full dump. 默认值为1

值:CustomDumpFlags, 类型:REG_DWORD - 没怎么用,暂时不解释。

b)启动Windows Error Reporting Server服务

服务启动后如果相应程序出现了崩溃的情况,WER就会自动将Crash Dump保存到指定的目录

4、打开Dump文件

Vs2008将pdb和dmp文件放在一起,用vs2008打开dmp文件调试即可,程序会停到程序崩溃的点。

Vs2015直接打开dmp,在右侧有一个设置符号路径的选项,设置pdb的路径之后再调试程序也会停到崩溃的地方。

需要注意的点:

1.dmp文件和pdb的对应是非常严格的,不同版本的pdb和dmp文件肯定是对应不上的,应当完整的保存pdb文件,以便在出现问题时好查找。

2.Windows Error Reporting Server服务每当触发一次dump,就会变成非启动状态,因此在设置此服务时,应当设置启动类型为自动。

3.在配置WER时,需要注意的是Count大小的设置,如果dmp文件个数超过Count的个数,会进行滚动覆盖,即新的dmp会覆盖旧的dmp。

Windows Error Reporting保存Crash Dump文件相关推荐

  1. 编写的windows程序,崩溃时产生crash dump文件的办法

    一.引言 dump文件是C++程序发生异常时,保存当时程序运行状态的文件,是调试异常程序重要的方法,所以程序崩溃时,除了日志文件,dump文件便成了我们查找错误的最后一根救命的稻草.windows程序 ...

  2. 怎样保存kernel crash dump 文件

    1.概述 实现Linuxkernel crashdump的保存,包括两部分.当kernel异常后,需要系统重启,且重启方式和正常的重启(上电重启)区别开:当系统重启后,判断重启的原因,如果是内核中设置 ...

  3. Linux crash dump文件生成与使用

    转载自:https://blog.csdn.net/keep_moving_gogogo/article/details/44196957 不像Windows程序需手动调用相关函数,Linux程序cr ...

  4. 记录linux 生成crash dump文件步骤

    转载自:https://blog.csdn.net/weixin_42987033/article/details/81746074 执行文件编译时加入-g 命令 例如 g++ -g test.cpp ...

  5. win mysql 错误日志_关于事件管理器中“应用程序”中显示windows error reporting的输入法报错日志...

    错误存储段 ,类型 0 事件名称: IMECustomerEvent 响应: 不可用 Cab Id: 0 问题签名: P1: IPX Assertion P2: 0CHS P3: ChsIME.exe ...

  6. Windows下生成dump文件的三种方式

    文章目录 前言 一.什么是dump文件? 概述 dump分类 内核模式Dump 用户模式Dump 二.dump生成方式 实现方法 方法一:修改注册表 参数说明 方法二:生动创建转储文件 方法三:通过代 ...

  7. Windows下dump文件生成与分析

    一.    生成Dump文件方式 1.1任务管理器 在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程.右键->创建转储文件. 此时会在默认的目录下创建出一个dump文件. 可以看出 ...

  8. windows程序崩溃生成dump文件

    第一种: 通过任务管理器:这种适用在程序挂了(crash)的时候进程还未退出,比如我运行程序,出现了下面的错: 此时打开任务管理器,右击相应进程,点击"Create Dump File&qu ...

  9. Windows下的Dump文件

    一.    生成Dump文件方式 1.1任务管理器 在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程.右键->创建转储文件. 此时会在默认的目录下创建出一个dump文件. 可以看出 ...

最新文章

  1. 【剑指offer】设置在最小数目的阵列
  2. 每次执行java命令 都要source_解决每次执行Java等命令时都要重新source /etc/profile后才能执行,否则找不到命令...
  3. MySQL高级 - 复制 - 集群搭建
  4. open*** 结合pam_mysql认证 failed to authenticate: Permission denied
  5. 【渝粤教育】国家开放大学2019年春季 0692-22T化工设备机械基础 参考试题
  6. 阿里面试官:HashMap 熟悉吧?好的,那就来聊聊 Redis 字典吧!
  7. 项目管理(二)责任划分
  8. unity cube自转的同时公转
  9. Visual Studio 2019 创建第一个ASP.net web应用程序
  10. js注释过后依然起作用
  11. catia中的螺旋伞齿轮画法_CATIA齿轮绘制方法
  12. 计算机网络教室环境的作用,网络教室环境与多媒体教室环境相比优势在什么地方...
  13. 菲尼克斯电气——基于Proficloud的设备远程运维工业物联网解决方案
  14. WDF驱动开发- CONTEXT和IO QUEUE
  15. [原创]通过动态Sql语句,一次性彻底删除或者修改SBO的某个字段对应内容的信息...
  16. PLC1200 模拟量采集
  17. 2010-2019中国企业所有跨国并购数据
  18. Tomcat优化方案
  19. php 带http的域名,php提取URL中的域名部分
  20. 【Go】Go语言中的下划线

热门文章

  1. Qt开发的TCP客户端和服务器
  2. 对表格数据的数据筛选
  3. STM32通过串口进入和唤醒停止模式
  4. matlab中绘制牟合方盖,牟合方盖 - calculus的日志 - 网易博客
  5. 数字化孪生技术在工业上的应用场景和案例分享
  6. 时间单位换算 与不同格式显示
  7. 京东数据分析软件工具(京东618销量查询)
  8. 硅谷色情谷的良心,XHamster的内容审核竟然比Facebook强?
  9. 推荐一款MySQL客户端工具NavicatPremium,超级好用!不需要乱七八糟的套路
  10. vim粘贴缩紧格式错乱问题