我沒有看到從控制檯的任何輸出或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