如何正确生成Windows完全内存转储?

时间:2017-10-18 02:47:19

标签: windows windbg dump

请找到转储样本on Google Drive(完全转储,但缺少有用的信息)。平台是Win10 x64 RS2。

我正在尝试制作完整的内存转储来分析我的应用。 我使用DumpConfigurator Utility来设置我的环境according to MSDN。我还将转储键更改为Ctrl + Space according to MS Technet

我正在尝试分析所有流程'调用堆栈所以我需要!进程信息。

转储生成后,我尝试使用WinDbg来分析转储中的进程。 但我无法通过!process!dml_proc获取任何有用的信息。

它显示:

0: kd> !process
Error in reading nt!_EPROCESS at ffffd081a0a56040
0: kd> !dml_proc
ERROR: !dml_proc: extension exception 0x80004005.
"Unable to get type ID of 'nt!_EPROCESS'"

我想问为什么会发生这种情况以及如何正确生成转储。

1 个答案:

答案 0 :(得分:1)

  • 检查并确保您的页面文件与\ Windows位于同一驱动器上 (系统驱动器)并且它大于物理RAM的大小 机器
  • 如果在不同的驱动器上,请查看专用的转储驱动器 注册表设置为页面文件使用不同的驱动器(WRT 内存转储)。
  • 确保您使用的是有效的MS公共符号

从内存转储看起来它配置为完整转储:

内核位图转储文件:可以使用完整的地址空间

然而,基于各种命令的输出,看起来可能的罪魁祸首是页面文件的大小或其位置(或两者)。参见上面提到的要点。