【问题标题】:Using Windows dump file for Borland C++ application为 Borland C++ 应用程序使用 Windows 转储文件
【发布时间】:2015-11-28 18:38:44
【问题描述】:

我有一个使用 Windows 任务管理器生成的转储文件。创建它的进程是一个 Borland(现在的 Embarcadero)C++ 应用程序。

是否可以将这样的文件用于 Borland 应用程序? 如果是,那么如何?

【问题讨论】:

    标签: debugging crash-dumps borland-c++


    【解决方案1】:

    当您创建应用程序的转储时,这称为用户模式故障转储。此类转储通常在 Microsoft Visual Studio、Microsoft WinDbg 或 DebugDiag 中进行分析。

    调试器是免费提供的。 WinDbg 是Debugging Tools for Windows 的一部分,Visual Studio 2015 以Community Edition 的形式提供。对于 WinDbg,安装两个版本,x64 和 x86,以便您可以调试任何类型的转储。 DebugDiag 有一个简单的 UI,不允许进行手动分析。

    如果您使用 64 位操作系统的默认任务管理器来转储 32 位应用程序,那么您可能会很不走运。尝试为 32 位应用程序获取 32 位转储,如果您不熟悉调试,那就更好了。 This answer 展示了获得良好转储的各种方法。这对您也很好,不仅适用于 .NET。

    在 DebugDiag 中分析转储

    1. 在 DebugDiag 中打开转储
    2. 选择一种分析类型
    3. 运行
    4. 阅读它生成的 HTML 报告

    在 Visual Studio 中分析转储

    1. 在 Visual Studio 中打开转储
    2. 按下绿色播放按钮
    3. 查看消息以查看异常
    4. 查看调用堆栈
    5. ...

    Visual Studio 有许多命令和可能性,但在这里解释它们太宽泛了。如果您对自己的转储有更具体的了解,请提出一个新问题。

    分析 WinDbg 中的转储

    1. 在 WinDbg 中打开故障转储(使用正确的位数)。
    2. Set up the symbols
    3. 开始分析,例如
      • ~ 获取线程列表,~xs 选择线程(其中 x 是线程号)
      • k 获取调用堆栈
      • .exr -1 获取有关异常的信息
      • !analyze -v 执行自动分析
      • ...

    学习 WinDbg 是一项艰巨的任务,因为大多数事情都是通过神秘的命令而不是通过 UI 完成的,但它几乎可以完成所有事情。

    对于具体问题,使用标签提问。

    【讨论】:

      猜你喜欢
      • 2011-03-14
      • 2023-03-25
      • 2011-12-02
      • 2012-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      相关资源
      最近更新 更多