建立在Windows Server 2003中的一个进程的内存转储?
-
22-09-2019 - |
题
由于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因为他们买了几年前)。非常小的下载。
不隶属于 StackOverflow