【问题标题】:Creating a Memory Dump of a Process in Windows Server 2003?在 Windows Server 2003 中创建进程的内存转储?
【发布时间】:2010-01-22 19:43:30
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我选择其他选项以避免安装windbg
    【解决方案2】:

    是的,查找 userdump.exe。看到这个KB article。

    【讨论】:

      【解决方案3】:

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

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

      C:> ntsd -p 4356
      

      然后使用ntsd转储进程:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2011-04-22
          • 2012-06-22
          • 2011-02-16
          • 1970-01-01
          • 1970-01-01
          • 2011-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多