Windows下dump文件的生成配置

前言

Windows下Dump文件分为两大类,内核模式Dump和用户模式Dump。内核模式Dump是操作系统创建的崩溃转储,最经典的就是系统蓝屏,这时候会自动创建内核模式的Dump。本文主要介绍的是用户模式Dump;

模式分类

Windows 上 Dump 文件主要分为内核模式 Dump 文件和 用户模式 Dump 文件。

内核模式 Dump 文件有:

  1. Complete Memory Dump(完全内存转储)
  2. Kernel Memory Dump(核心内存转储)
  3. Small MemoryDump(小内存转储)
  4. Automatic Memory Dump(自动内存转储)
  5. Active Memory Dump(活动内存转储)

用户模式 Dump 文件分为:

  1. Full user-mode dumps (完整用户模式转储)
  2. Minidumps(小型转储)

内核Dump默认配置

一般情况下,以windows10举例,内核Dump配置为自动,可以通过电脑->属性->高级系统设置-启动和故障恢复查看:
在这里插入图片描述

用户Dump默认配置

一般情况下,用户Dump是没有默认配置的,如果希望自己的程序能够生成Dump文件,都需要手动配置使能够自动生成Dump文件或手动生成Dump文件。

方法一:修改注册表
使用管理员权限,执行一下脚本内容,运行后: 任何程序崩溃都会在C:\xxx 产生dmp文件(full dmp)。

@echo 设置启用Dump
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpFolder /t REG_EXPAND_SZ /d "C:\xxx" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpType /t REG_DWORD /d 2 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpCount /t REG_DWORD /d 10 /f
@echo 设置Dump已经启用

参数说明
DumpFolder:文件生成路径
DumpType

  1. 0 = Create a custom dump //自定义dump
  2. 1 = Mini dump //mini核心dump文件
  3. 2 = Full dum //所有dump文件,产生的文件较大

DumpCount:Dump文件数量

它也支持在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps下添加子项,为指定的exe进行单独配置:
在这里插入图片描述

方法二:生动创建转储文件
当windows应用程序出现无响应时,可以打开任务管理器,找到无响应的进程,右键选择创建转储文件即可,即生成崩溃对应的dmp文件,该文件一般位于 C:\Users\happy\AppData\Local\Temp目录(显然这需要用户自己动手,不合适)

方法三:通过代码设置异常回调函数
使用windows系统api,程序中加入存储Dump的代码。通过SetUnhandledExceptionFilter
设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值