由于Windows Vista中,我们有很好的选项,直接从任务管理器中创建一个进程的内存转储。可悲的是,Windows Server 2003中没有此选项尚未:(我找到了做一个完整的系统范围的内存转储,但是这是一个有点过分。

有没有办法来转储一个单一的过程?由于这是一个生产服务器,我不想安装任何重量级的工具或服务在后台运行,最好我只是想转储过程中,转储复制到我自己的机器和调试它。

有帮助吗?

解决方案

是,查找userdump.exe在。看到此 KB文章

其他提示

可以附加 Windows调试(NTSD或WinDBG的),以的proccess,然后当你要创建的进程的转储可以使用使用.dump命令:

0:000> .dump /ma myprocess-crash.dmp
Creating myprocess-crash.dmp - mini user dump
Dump successfully written
0:000>

我觉得这个“答案”应该是下jeffamaphone的回答评论,但我没有足够的信誉评论。

Windows Server 2003所中附带NTSD所以无需安装任何东西。获取进程的进程ID和附加NTSD到过程:

C:> ntsd -p 4356

然后使用NTSD转储过程:

.dump /f c:\MyDumpFiles\foo.dmp

不要忘了从sysinternals.com procdump(重定向到MS因为他们买了几年前)。非常小的下载。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top