2011-05-26 61 views
1

我正在用Visual C++編寫一個相對簡單的C程序,並且有兩個全局變量,我想知道程序運行時的值。這些值一旦被賦值就不會改變,但是我的編程能力還不足以能夠快速構建一個顯示值的文本框(我在Win32中工作),所以我正在尋找一個快速例程,可以導出將這些值傳遞給一個文本文件,以便我可以查看它們並檢查它們是他們應該是的。值是'雙'。如何在程序執行期間查看變量

我的印象是,這是調試器的目的,但對我來說,調試器不運行,因爲'文件未找到'總是如此。

任何想法,我可以很容易地檢查Win32應用程序中的全局變量的值(雙)?

+11

你應該知道爲什麼調試器不會運行並修復它然後使用調試器。 – sharptooth 2011-05-26 10:39:12

+0

什麼「文件」是「找不到」? – 2011-05-26 10:43:11

+1

「我有一種工具可以滿足我的需求,但我無法正常工作,應該使用哪種工具來完成我所需要的工作?」你有調試器,調試器做你需要的,所以你應該問如何使用你的調試器... – jalf 2011-05-26 10:44:23

回答

3

讓調試器工作。你也許應該發佈另一個問題,提供關於爲什麼它不起作用的信息 - 儘可能多地提供信息。

一旦你完成了這些,設置一個斷點,並在Visual C++(我剛剛在2010年嘗試),懸停在變量名稱。

您也可以使用觀察窗口輸入表達式並跟蹤它們的值。

+0

謝謝 - 我會研究這個 – CaptainProg 2011-05-26 10:44:00

1

如果您的調試器不工作,請在程序迭代的任何位置嘗試使用printf語句。有時,這可能是一種觀察變量的有用方式,而無需進入該變量。

如果您希望在調試模式下運行程序,請按照建議設置斷點(在VS2010中,您可以右鍵單擊要設置斷點的行)。

然後你只需要去工具欄 - >調試工具欄。

+0

cout是C++的一部分,而海報是使用c,所以它寧願是printf()。 – 2011-05-26 10:49:22

+0

是的,當我注意到這一點後,爲了理智而編輯。 – mikeyjk 2011-05-26 10:49:58

0

我通常喜歡把#ifdef _DEBUG(或者寫一個合適的宏或者甚至額外的代碼)來完成打印,並將所有可以幫助我跟蹤程序執行的內容發送到輸出。既然你的變量永遠不會改變,我會這樣做。 但是,用很多值氾濫控制檯是不好的,在這種情況下,我會依靠斷言和調試器 - 你應該明白爲什麼它不起作用。 我已經做了足夠的Python和Ruby來告訴你,當你擁有的只是一個printf時,調試一個複雜的程序雖然可行,但是它非常令人沮喪並且比它應該的時間更長。

最後,既然你提到你的數據類型是double(請確保你有一個不使用float的好理由),如果你添加了一些斷言,記住==是可以避免的,除非你知道100% ==是你真正想要的東西(如果你的數據來自計算,這是不太可能的)。

相關問題