任务管理器生成的进程转储类型是什么?

12

从Windows Vista开始,现在可以直接从任务管理器生成进程转储文件。通常我会使用Adplus或直接使用Windbg来生成进程转储文件。如果我使用其中一种选项,就必须在命令中提供一些开关以描述正在生成的转储类型。鉴于当我从任务管理器生成进程转储文件时,所有这些细节都是隐藏的,那么有人知道它是什么类型的转储文件以及其中包含了什么吗?我记得在某个地方读到过,从任务管理器生成的进程转储文件不包括句柄表上的详细信息。对此有什么想法吗?


3
这是一个庞大的项目,包括所有必要的东西。 - Hans Passant
1个回答

14

该转储文件是“具有全内存的用户迷你转储文件”,因此对于大多数任务来说,您可以使用它。

然而,您无法指定在某个特定事件发生时创建转储文件。像adplus和procdump这样的工具允许您为各种条件(异常、工作负载等)创建转储文件。因此,任务管理器仅支持给我进程的快照(适用于挂起进程)。对于其他情况,您需要使用adplus或procdump。

此外,您应该知道64位Windows附带了两个版本的任务管理器。64位管理器将创建64位转储文件-甚至针对32位进程(即转储文件将包含运行32位进程所需的Wow64内容)。然而,如果您使用任务管理器的32位版本(位于\Windows\SysWOW64中),则会获得真正的32位转储文件。


感谢Brian的回复。我的问题实际上是关于任务管理器生成的转储类型。它是否类似于.dump /ma或.dump /mt,还是其他什么等等。我在分析通过任务管理器生成的转储文件时注意到一件事情,那就是当我运行!handle命令时,我什么也没有得到。我认为这可能是因为转储没有句柄数据。 - palm snow
2
它生成一个“带有完整内存的用户小转储文件”,应该与.dump /ma命令相同。然而,我刚刚验证了一下,我也没有得到任何!handle的数据。有趣(太糟糕了,我不能再次为你的问题点赞...) - Brian Rasmussen
1
至少让我放心的是,我不是疯了 :) 我想仍然存在一个谜团,为什么完整内存的迷你转储不包括句柄表。 - palm snow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接