Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何使用WER创建包含应用程序数据和句柄的转储_Windows_Crash Dumps - Fatal编程技术网

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

Windows 如何使用WER创建包含应用程序数据和句柄的转储,windows,crash-dumps,Windows,Crash Dumps,这是我的注册表: 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表

这是我的注册表:

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
表示
miniddumpwithfullmemory | miniddumpwithhandledata
,其中:

  • MiniDumpWithFullMemory-在进程中包括所有可访问的内存。原始内存数据包含在末尾,因此可以直接映射初始结构,而无需原始内存信息。此选项可能导致文件非常大
  • MiniDumpWithHandleData-包括有关在进行minidump时处于活动状态的操作系统句柄的高级信息
现在我有一个crash me应用程序,所以我运行它,它崩溃了,转储是在%userprofile%\AppData\Local\CrashDumps中创建的,我在windbg中打开它,看到下面一行:

内存已满的用户小型转储文件:仅存储应用程序数据 可用

这相当于
CustomDataFlags=2

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


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

请尝试
.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上的find命令对其进行过滤:

.shell -ci ".dumpdebug" find "MiniDumpWith"

Windbg没有那么健谈,它没有列出所有可能的转储类型标志。到底出了什么问题?在这一点上,我只是在测试我可以创建的各种崩溃转储,显然我无法使用自定义转储标志来请求比
DumpFlags=2
(完全转储)指定的转储更丰富的转储。是的,这个命令告诉我们minidump有正确的标志。因此,“只有应用程序数据可用”的信息似乎具有误导性。