在Windows Server 2003中创建进程的内存转储?

时间:2010-01-22 19:43:30

标签: debugging windows-server-2003 memory-dump

从Windows Vista开始,我们可以直接从任务管理器创建进程的内存转储。可悲的是,Windows Server 2003还没有这个选项:(我找到了完成整个系统范围内存转储的方法,但这有点太多了。

有没有办法转储单个流程?由于这是一个生产服务器,我不想安装任何重量级的工具或在后台运行的服务,理想情况下我只想转储进程,将转储复制到我自己的机器并在那里进行调试。

4 个答案:

答案 0 :(得分:7)

您可以将Windows debugger(ntsc或windbg)附加到进程,然后当您想要创建进程的转储时,可以使用.dump命令:

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

答案 1 :(得分:5)

是的,请查找userdump.exe。请参阅此KB article

答案 2 :(得分:2)

我认为这个'答案'应该是jeffamaphone答案下的评论,但我没有足够的声誉来评论。

Windows Server 2003附带ntsd,因此无需安装任何内容。获取进程的进程ID并将ntsd附加到进程:

C:> ntsd -p 4356

然后使用ntsd转储进程:

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

答案 3 :(得分:1)

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