应用程序崩溃时如何生成 Windows 内存转储。?

cer*_*wny 2 windows crash crash-dumps

是否有一种简单的方法可以为崩溃的应用程序生成内存转储?

我有一种情况,客户收到了产生崩溃的代码,因为代码本身没有用于中止时回溯生成的信号处理程序我想知道是否有一种简单的方法可以告诉 Windows 生成内存转储崩溃的应用程序。

理想的解决方案不涉及调试工具的安装(或代码修改),但如果这是不可能的,知道这将非常有帮助。

Gin*_*ack 7

  1. 在应用程序崩溃时转储内存的一种简单方法是使用 Windows 任务管理器。当发生异常或应用程序错误时,窗口会弹出一个内存对话框并显示导致崩溃的地址位置。在您单击消息框上的确定之前,打开任务管理器并右键单击崩溃的应用程序并选择创建转储文件。看看下面的屏幕截图。选择文件

在此处输入图片说明

2)另一种生成用户模式转储的方法是添加以下注册表项

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting >\LocalDumps\application.exe application.exe 应该替换为扫描仪下的应用程序名称。

在此键下可以添加以下值

转储文件夹

要存储转储文件的路径。如果不使用默认路径,请确保文件夹包含允许崩溃进程将数据写入文件夹的 ACL。对于服务崩溃,转储将根据所使用的服务帐户写入服务特定的配置文件文件夹。例如,系统服务的配置文件文件夹是 %WINDIR%\System32\Config\SystemProfile。对于网络和本地服务,文件夹为 %WINDIR%\ServiceProfiles。

转储计数

文件夹中转储文件的最大数量。当超过最大值时,文件夹中最旧的转储文件将被新的转储文件替换。

转储类型

指定以下转储类型之一: 0:自定义转储 1:小型转储 2:完整转储

自定义转储标志

要使用的自定义转储选项。此值仅在 DumpType 设置为 0 时使用。选项是 MINIDUMP_TYPE 枚举值的按位组合。