在 Windows 程序崩溃时生成转储文件

有时候程序运行的时候会停止响应或崩溃,如果能够在这时创建转储文件(DUMP)对于故障排除和解决问题很有用处。
有两种方法可以生成转储文件:

一、通过任务管理器

适用于在程序崩溃的时候程序还未退出(有错误弹窗的情况)
此时打开任务管理器,右击相应进程,点击”创建转储文件“,等待创建完成,然后把生成的转储文件发送给我们。

二、改注册表

如果程序崩溃的时候没有提示框弹出来,则可以通过改注册表的方式让操作系统在程序崩溃的时候自动生成转储文件,并放到特定的目录下。注册表修改示例:
增加注册表项(如果没有的话):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
添加注册表值:
DumpCount,REG_DWORD,数据:10(10进制)
DumpFolder,REG_EXPAND_SZ,数据:Dump文件保存路径(比如:%LOCALAPPDATA%\CrashDumps)
DumpType,REG_DWORD,数据:2(10进制),可选项
DumpType 代表的含义:0 = Create a custom dump,1 = Mini dump,2 = Full dump


您也可以在以管理员权限运行的 PowerShell 里面运行下面命令以快速创建这些项目:

New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name "LocalDumps"
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpFolder" -Value "%LOCALAPPDATA%\CrashDumps" -PropertyType "ExpandString"
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpCount" -Value 10 -PropertyType DWord
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpType" -Value 2 -PropertyType DWord

这样当程序崩溃的时候就会在设定的目录中生成 .dmp 转储文件,打开目录(%LOCALAPPDATA%\CrashDumps)并把生成的转储文件发送给我们以供调查。