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

jea*_*tsy 13 debugging visual-studio-2008 visual-c++

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

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

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

Fra*_*cuz 19

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

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

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

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

    > Tools.LogCommandWindowOutput /off
    
    Run Code Online (Sandbox Code Playgroud)

  • 在“立即”窗口中,命令必须以“>”为前缀(否则,它在调试过程的上下文中被评估为表达式,而不是 Visual Studio 的命令) (3认同)

Car*_*arl 4

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

  • Win32 输出调试字符串
  • 内核模式DbgPrint
  • Windows XP 和 Server 2003 中实现的 DbgPrint 的所有内核模式变体

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

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

  • 我不是这个意思。问题是如何重定向调试器输出以将断点生成的文本记录到文件中。如果调试器无法使用,则任何断点都不会生成文本。 (2认同)