如何使用 WER 创建包含应用程序数据和句柄的转储

问题描述 投票:0回答:1

这是我的注册表:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
"DumpType"=dword:00000000
"CustomDumpFlags"=dword:00000006

根据本文

DumpType=0
表示自定义转储,然后考虑
CustomDumpFlags
。根据这篇文章
CustomDumpFlags=6
的意思是
MiniDumpWithFullMemory | MiniDumpWithHandleData
,其中:

  • MiniDumpWithFullMemory - 包含进程中所有可访问的内存。原始内存数据包含在末尾,因此可以直接映射初始结构而无需原始内存信息。此选项可能会产生非常大的文件。
  • MiniDumpWithHandleData - 包含有关进行小型转储时处于活动状态的操作系统句柄的高级信息。

现在我有一个崩溃应用程序,所以我运行它,它崩溃了,转储是在 %userprofile%\AppData\Local\CrashDumps 中创建的,我在 Windbg 中打开它并看到以下行:

全内存用户迷你转储文件:仅应用程序数据 可用

相当于

CustomDataFlags=2

那么,我应该如何创建一个包含句柄数据的转储?如果可能的话,我想不使用第三方。

我的操作系统是 Windows 8 或 Windows 2008R2 服务器或更高版本。

windows crash-dumps
1个回答
2
投票

尝试

.dumpdebug
,这是一个未记录的命令。在输出的顶部应该有标志:

0:006> .dumpdebug
----- User Mini Dump Analysis

MINIDUMP_HEADER: Version         A793 (62F0) NumberOfStreams 15 Flags  41826
                0002 MiniDumpWithFullMemory
                0004 MiniDumpWithHandleData
                0020 MiniDumpWithUnloadedModules
                0800 MiniDumpWithFullMemoryInfo
                1000 MiniDumpWithThreadInfo
                40000 MiniDumpWithTokenInformation

如果您不喜欢冗长的输出,可以使用 shell 上的 findstr 命令对其进行过滤:

.shell -ci ".dumpdebug" findstr "MiniDump"
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.