【问题标题】:How can I configure windows to generate a core dump from an application?如何配置 Windows 以从应用程序生成核心转储?
【发布时间】:2011-01-12 18:37:39
【问题描述】:

如何配置 Windows 以从应用程序生成核心转储?

我使用的是 Win xp,应用程序是用 Visual Studio 2003 构建的。

【问题讨论】:

    标签: c++ windows debugging visual-studio-2003 coredump


    【解决方案1】:

    Microsoft 有一个名为 Userdump.exe 的免费工具可以执行此操作。

    使用该工具为异常关闭的进程创建转储 (.dmp) 文件或为挂起的进程创建转储文件非常简单

    【讨论】:

    • 感谢您的回答。这是最适合我的情况的。
    【解决方案2】:

    只是提出一些其他建议:

    • ProcDump 是 MS SysInternals 套件的一部分(它会捕获崩溃,但也会执行更多负载,如果 CPU 使用率在一段时间内达到峰值,则可以进行转储等)
    • 您可以使用 MiniDumpWriteDump 将代码放入您的 exe 中,以自行保存转储文件(我已经在一些工具中完成了此操作)。您可以控制名称和位置(即网络路径)。有一些示例代码here

    【讨论】:

    • ProcDump 是一个很好的工具。我将改用 Userdump.exe,因为该工具将安装在客户的机器上,而且 Userdump 似乎更易于教授如何使用。
    【解决方案3】:

    您可以打开任务管理器(通过右键单击任务栏),在进程选项卡中找到您的进程,右键单击它并选择创建转储文件

    【讨论】:

      【解决方案4】:

      您可以按照here 的描述尝试使用 WinDbg。

      【讨论】:

        【解决方案5】:

        您可以使用adplus 为正在运行的应用程序生成故障转储。该命令可能如下所示:

        C:\Program Files\Debugging Tools for Windows\adplus.vbs -hang -do -o c:\ -quiet -pn theprocess.exe
        

        您还可以使用 windbg 附加到进程并运行以下命令:

        .dump /ma c:\somepath\filename.dmp
        

        【讨论】:

          【解决方案6】:

          关于这个主题,我建议您参考以下MS KB article。您通常会使用 Windows 调试工具之一来调试转储文件,例如数据库。网上有很多文章描述了如何做到这一点。

          【讨论】:

          • Hefferman,我一直在寻找能够自动生成核心转储的工具,但我将使用 WinDbg 来分析生成的转储。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-12-30
          • 1970-01-01
          • 1970-01-01
          • 2010-11-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多