如何重定向Visual Studio调试器的输出?

时间:2010-04-06 17:30:32

标签: visual-studio-2008 visual-c++ debugging

在Visual Studio 2008中,我可以指定在遇到断点时要打印的消息(通过右键单击断点并选择“When Hit ...”)。运行程序时,这些消息将显示在“输出”窗口中。我想知道,有没有办法将它们重定向到文件?

>file.txt指定为程序的命令参数不起作用:这会重定向程序的输出,而不是调试器的输出。

(FWIW我希望实现的行为是让调试器重复将变量的值打印到文件中,而不是用printf / cout语句来编写代码。)

3 个答案:

答案 0 :(得分:16)

  1. 将选项将所有输出窗口文本重定向到立即窗口。我们在工具选项调试常规(第五项到最后一项)中找到它。

  2. 打开立即窗口: Ctrl + Alt + I 调试 Windows 立即窗口

  3. 在立即窗口中输入如下命令:

    > Tools.LogCommandWindowOutput /on C:\mylogfile.txt
    
  4. 要停止写入文件,请在立即窗口中输入以下命令:

    > Tools.LogCommandWindowOutput /off
    

答案 1 :(得分:4)

在Windows 2000下,XP,Server 2003和Vista DebugView将捕获:

  • Win32 OutputDebugString
  • 内核模式DbgPrint
  • 在Windows XP和Server 2003中实现的DbgPrint的所有内核模式变体

DebugView允许您过滤输出,添加时间戳并记录到文件。

问题是,您需要在不附加到调试器的情况下运行,以便DbgView捕获输出。 (使用Ctrl + F5)

答案 2 :(得分:0)

我不知道如何将输出窗口内容写入文件而不是编写VS插件,但是您可以在输出窗口中突出显示文本并将其复制到剪贴板,然后将其粘贴到文本中文件。