0

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

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

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

4

1 回答 1

0

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

尝试确定您的进程崩溃的情况并编写一个或多个转储。

另一种尝试是安装Windows 调试工具并使用 WinDbg 调试您的应用程序。这不像 Visual Studio 那样舒服,但可以提供更深入的洞察力。

编辑: 如果有使用OutputDebugString(..)制作的调试语句,您可以使用DebugView(来自 Microsoft,更早的 Sysinternals)来显示它。

于 2013-01-20T18:47:45.737 回答