【发布时间】:2010-03-26 09:15:28
【问题描述】:
我在控制台或 Visual Studio 的输出面板中没有看到任何输出:
Debug.Write("WriteStatements() was reached")
输出到哪里去?
【问题讨论】:
-
如果您在 Visual Studio 的 Output 窗口中看不到输出,请确保您在下拉菜单中选择了 Show output from Debug列表。
标签: .net
我在控制台或 Visual Studio 的输出面板中没有看到任何输出:
Debug.Write("WriteStatements() was reached")
输出到哪里去?
【问题讨论】:
标签: .net
Zhaph 的回答已经告诉您一种获取Debug.Write 输出的方法。
在后台,Debug.Write 的默认侦听器,即System.Diagnostics.DefaultTraceListener,调用 Windows API 函数 OutputDebugString。
传递给该函数的任何消息都可以由调试器显示,例如您将在 Visual Studio 的 Output 窗口中看到输出。
查看Debug.Write 和/或Trace.Write 输出的另一种非常简单的方法是使用来自Sysinternals 的工具DebugView:
DebugView 是一个应用程序,它可以让 您在本地监控调试输出 系统或网络上的任何计算机 您可以通过 TCP/IP 访问。它是 能够同时显示内核模式 和 Win32 调试输出,所以你不需要 需要一个调试器来捕获调试 输出您的应用程序或设备 驱动程序生成,您也不需要 修改您的应用程序或驱动程序以 使用非标准调试输出 API。
请注意,Debug.Write 语句不会包含在发布版本中,因此您只能在调试版本中看到输出。
【讨论】:
它会写入您需要打开的默认跟踪侦听器:
如果您希望将其定向到控制台,您需要添加 ConsoleTraceListener 的实例:
在您的 .config 文件中确保您有以下条目:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="configConsoleListener"
type="System.Diagnostics.ConsoleTraceListener" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
您可能还需要确保在编译项目以启用输出时包含/d:TRACE 标志。
【讨论】: