从崩溃的VS2010应用程序获取调试输出

时间:2013-01-20 18:42:38

标签: c++ visual-studio-2010 debugging directx-9

问题:我可以设置VS2010,以便自动将调试输出写入文件吗?

动机:我有一个我正在尝试调试的DirectX 9应用程序。我注意到,当我的应用程序是全屏时,它可能会在某些条件下崩溃。通常我会检查我的日志或DirectX调试输出。但是,程序崩溃的方式阻止了这种情况。它冻结并且不响应我的任何结束它的尝试(包括任务管理器的“结束进程”)。此外,它也冻结了我的VS2010,因此VS也没有响应任何命令。我发现的唯一出路就是结束VS进程。然而,这也破坏了我非常想阅读的输出。

现在我看到了两种方法。首先是将所有调试信息写入文件,但我不知道该怎么做。其次是以更友好的方式使我的应用程序崩溃,但这似乎是一项艰巨的任务。

1 个答案:

答案 0 :(得分:0)

可能MiniDumpWriteMiniDump(..)对此有所帮助。您可以随时将进程的当前状态转储到文件中。之后,您可以使用Visual Studio打开转储并分析进程的状态 - 这包括每个线程的调用堆栈,变量值......

尝试确定您的进程崩溃并写入一个或多个转储的条件。

另一种尝试是安装Windows Debugging Tools并使用WinDbg来调试您的应用程序。这不如Visual Studio那么舒服,但允许更深入的洞察力。

修改 如果使用OutputDebugString(..)进行调试语句,则可以使用DebugView(来自Microsoft,早期的Sysinternals)来显示它。