如何对Windows应用程序执行事后调试?

如何对Windows应用程序执行事后调试?

问题描述:

我在MSVC2008中开发非托管C++应用程序。偶尔应用程序会在客户端崩溃。我发现一个article on this。但它是在2002年为Visual Studio .NET编写的。事情从此改变了吗?可以使用相同的技术吗?有没有更新的方法?如何对Windows应用程序执行事后调试?

+0

我想知道,如果在该网站的示例代码仍然适用。 – sep 2010-08-28 04:58:20

+0

我可以在客户端部署调试版本。我保留PDB文件。我的主要问题是是否仍然需要编写代码来处理异常以生成小型转储,以及所提供的代码在MSVC2008和现代Windows(如Windows 7,Vista,Server 2008)的上下文中是否仍然相关。 – sep 2010-08-28 05:11:00

如果您正在为Windows调试C和C++应用程序,您想了解如何使用WinDBG (distributed as "debugging tools for Windows")。它有一点学习曲线,但文档非常好,它确实是平台所能提供的最好的。

至于你的问题,你可以查看与windbg -z <dump filename>崩溃转储。

通常释放模式的二进制文件(通常在客户端运行)通过优化(速度/内存等)来构建。解决优化的二进制文件通常并不容易。

因此,首先检查崩溃是否可用未经优化构建的发布模式二进制文件重现。如果是,那么这项工作很容易。

Here是一些信息。

也期待在一个名为ADPlus工具来自微软