2010-11-01 64 views
0

我想打印調試語句輸出窗口(或其他任何地方,我可以看到它)在Visual Studio 2005中我見過的建議說使用打印在Visual Studio 2005安慰

OutputDebugString("message"); 

並確保我有

選項 - >調試 - >重定向所有輸出窗口的文本即時窗口檢查

而代碼編譯好,我沒有看到任何輸出,有什麼訣竅?

+1

您是否已驗證調試代碼實際上是否已命中通過放置一個斷點? – 2010-11-01 11:22:02

+0

您需要使用調試命令,而不是運行。 – 2010-11-01 11:30:32

+0

亞歷克斯:我已經擊中F5開始調試。 – opsb 2010-11-01 11:40:17

回答

0

您必須先在調試模式下運行。

然後使用下面的代碼(從MSDN):

class Test{ 
static void Main() 
{ 
    Debug.Listeners.Add(new TextWriterTraceListener(Console.Out)); 
    Debug.AutoFlush = true; 
    Debug.Indent(); 
    Debug.WriteLine("Entering Main"); 
    Console.WriteLine("Hello World."); 
    Debug.WriteLine("Exiting Main"); 
    Debug.Unindent(); 
}} 

你會看到在輸出窗口中的一切。您可能需要轉到View-> Output菜單才能使此窗口在IDE中可見。

+0

對不起,我應該提到我正在使用C++。我猜這是C#? – opsb 2010-11-01 11:49:24

2

如果您使用的是OutputDebugString,那麼您也可以使用SysInternal's DebugView來查看輸出。在你解決你的Visual Studio調試問題之前,DebugView應該做到這一點。

+0

神奇的,完美的作品!我不能調試器工作,所以這至少會讓我看到發生了什麼。 – opsb 2010-11-01 12:05:38

0

Alt-2或View-> Output打開輸出窗口。默認情況下,它應該已經打開,它通常位於IDE底部的選項卡式窗口中(但取決於您的自定義佈局),並標記爲「Output」。

輸出不針對控制檯,您需要輸出到stdout,併爲其創建控制檯窗口。

+0

我的輸出窗口打開,下拉框設置爲調試。我看到模塊被加載,並且來自IExplorer的消息(我附加的過程),但沒有從OutputDebugString輸出 – opsb 2010-11-01 12:03:45

+0

如果包含輸出調用的進程不是您所連接的進程,您爲什麼期望得到輸出! ?或者我誤解了?它適用於我,雖然輸出很容易在所有其他消息中丟失。 – Clifford 2010-11-01 13:16:42

0

如果你的代碼不打的線,那麼它可能:

人民幣在VS的輸出窗口:

alt text

檢查,如果你有「程序輸出」選中,如果是,檢查它!!!

儘管此控件存在於輸出窗口的上下文菜單中,但它在重定向它時會影響立即窗口中的輸出。

+0

我確實有這個選項設置 – opsb 2010-11-01 12:10:25

+0

可能你可以嘗試切換它嗎?似乎你的調試器有一些問題,並且它處於不穩定的狀態...... – 2010-11-01 12:15:59

+0

試過了,無濟於事。它似乎是調試器啓動的問題。我也無法打破任何斷點。它肯定會啓動調試器,因爲菜單項Stop Debugging變爲可用。 – opsb 2010-11-01 12:27:07