2

我已经ProcDump从 Windows Sysinternals 网站下载。https://docs.microsoft.com/en-us/sysinternals/downloads/procdump

我使用下面的命令来启动转储收集。

       procdump -ma <process_name>

这是命令行输出

       [08:17:43] Dump 1 initiated: 
       E:\SSDT\Procdump\WindowsService.exe_180926_081743.dmp
       [08:17:47] Dump 1 writing: Estimated dump file size is 2309 MB.
       [08:17:59] Dump 1 complete: 2310 MB written in 16.5 seconds
       [08:18:00] Dump count reached.

现在,我正在尝试将其导入,JetBrains dotMemory但不幸的是我收到了错误提示。


点内存

无法导入转储:目前不支持 32 位进程的 64 位转储。请使用 32 位工具进行转储。例如,>%WinDir%\SysWOW64\taskmgr.exe 是 32 位版本的任务管理器。

是什么意思64-bit dumps of 32-bit processes?我试图从两个 EXE 中创建转储ProcDump,但我得到了相同的消息提示。

在此处输入图像描述

4

2 回答 2

3

一些转储工具(例如 TaskManager)以 64 位格式写入转储文件,即使对于 32 位应用程序也是如此。ClrMd(目前在后台用于 dotMemory 中的转储处理)不能很好地处理这种情况(解决问题)。所以在 dotMemory 中有一个额外的检查,它会在早期阶段检测是否是这种情况并显示消息。

通常,Procdump 以独立于 procdump 位数产生正确的转储而闻名。但看起来在你的场景中有些不同。您能否将 procdump.exe 和 procdump64.exe 生成的转储上传到https://uploads.services.jetbrains.com/并提及名称?这将有助于团队调查此案。

于 2018-09-26T11:09:41.183 回答
0

如文档所述,如果您启动 %WinDir%\SysWOW64\taskmgr.exe (32 位版本的任务管理器),您可以右键单击您的进程,然后创建转储(对于您的 32 位应用程序

于 2018-11-19T08:26:12.687 回答