【发布时间】:2015-11-28 18:38:44
【问题描述】:
我有一个使用 Windows 任务管理器生成的转储文件。创建它的进程是一个 Borland(现在的 Embarcadero)C++ 应用程序。
是否可以将这样的文件用于 Borland 应用程序? 如果是,那么如何?
【问题讨论】:
标签: debugging crash-dumps borland-c++
我有一个使用 Windows 任务管理器生成的转储文件。创建它的进程是一个 Borland(现在的 Embarcadero)C++ 应用程序。
是否可以将这样的文件用于 Borland 应用程序? 如果是,那么如何?
【问题讨论】:
标签: debugging crash-dumps borland-c++
当您创建应用程序的转储时,这称为用户模式故障转储。此类转储通常在 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。
Visual Studio 有许多命令和可能性,但在这里解释它们太宽泛了。如果您对自己的转储有更具体的了解,请提出一个新问题。
~ 获取线程列表,~xs 选择线程(其中 x 是线程号)k 获取调用堆栈.exr -1 获取有关异常的信息!analyze -v 执行自动分析学习 WinDbg 是一项艰巨的任务,因为大多数事情都是通过神秘的命令而不是通过 UI 完成的,但它几乎可以完成所有事情。
对于具体问题,使用windbg标签提问。
【讨论】: