我没有看到从控制台的任何输出或Visual Studio的输出面板:.NET的Debug.Write()输出到哪里?
Debug.Write("WriteStatements() was reached")
哪里输出去了?
我没有看到从控制台的任何输出或Visual Studio的输出面板:.NET的Debug.Write()输出到哪里?
Debug.Write("WriteStatements() was reached")
哪里输出去了?
其写入默认跟踪监听器,你需要打开:
如果你想这个定向到控制台,你将需要添加的一个实例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
标志。
没有默认监听器? – Ricky 2010-03-26 09:21:31
@Ricky有一个DefaultTraceListener(http://msdn.microsoft.com/en-us/library/system.diagnostics.defaulttracelistener.aspx),它将显然“将消息发送到Win32 OutputDebugString函数和调试器。 Log方法有关OutputDebugString函数的信息,请参阅Platform SDK或MSDN“,但您希望在Console/Output窗口中找到它,该窗口需要ConsoleTraceListener。 – 2010-03-26 09:27:33
直到我发布了我的答案才看到您的评论,对不起。 – 2010-03-26 09:37:33
Zhaph的回答已经告诉你一种方法来得到Debug.Write
的输出。
在引擎盖下,Debug.Write
的默认侦听器,即System.Diagnostics.DefaultTraceListener
,调用Windows API函数OutputDebugString
。
任何传递给该函数的消息都可以由调试器显示,例如,您将在Visual Studio的输出窗口中看到输出。
另一种非常简单的方法来查看Debug.Write
和/或Trace.Write
输出是使用DebugView,从Sysinternals的工具:
的DebugView是一个应用程序,让 您监控本地 系统上调试输出,或者您可以通过TCP/IP访问的网络 上的任何计算机。它能够显示内核模式 和Win32调试输出的 ,让你不 需要一个调试器来捕捉调试 输出应用程序或设备驱动程序 产生,你也不需要 修改应用程序或驱动程序到 使用非标准调试输出API。
请注意,Debug.Write
语句不会包含在发布版本中,因此您只能看到Debug版本中的输出。
+1对于DebugView :) – 2011-02-14 16:09:24
我不得不说,在调试测试时,这是一个惊人的工具。有时你需要看到没有运行调试器的输出。谢谢德克! – 2016-02-12 13:53:00
如果在Visual Studio的* Output *窗口中看不到输出,请确保您已在下拉列表中选择*显示来自Debug *的输出。 – 2010-03-26 09:45:53