2010-03-02 24 views
2

讓我們假設你剛剛編寫了一些大代碼,它編譯並且一切正常......但最終,結果並不是預期的,或者代碼只是崩潰。代碼中有一些錯誤,你必須在所有(幾乎)行中尋找它...如何快速檢查和分析錯誤代碼(C++)

一種方法是在每個循環/重要函數後面放置cout/printf以查看變量是如何改變和錯誤在哪裏。這顯然是有效的,使用它我發現了一些編程時的常見錯誤。但是如果有很多變量和很多函數/循環 - 將cout放在每個變量中幾乎是不可能的。必須有其他方式來做到這一點。

這就是爲什麼我在這裏問 - 除了上面描述的愚蠢方法之外,是否有任何方法可以跟蹤代碼中變量的值?我聽說過調試,但不確定它究竟是什麼意思,它有什麼作用。

+1

你用什麼環境編碼? – Skilldrick 2010-03-02 14:03:25

回答

3

使用Debugger

有一個調試器的大部分(如果不是全部)流行的C++開發環境。我認爲你不能開發沒有一個代碼的非平凡代碼。

(是的,我知道有一個在TDD,指出如果你已經足夠的測試覆蓋率你並不需要一個調試器的運動。這是完全@rse恕我直言)

+0

關於使用它的任何教程,我如何跟蹤值或什麼?我是這個初學者,所以有了解。 – VaioIsBorn 2010-03-02 14:14:20

+1

@Vaiols這取決於你的環境。你如何編譯你的代碼? – Skilldrick 2010-03-02 14:16:13

+0

@VaioIsBorn:取決於你的特定工具和平臺。你是Windows,Unix還是其他?你使用什麼C++編譯器?微軟,Codegear,Borland,IBM,GCC? – 2010-03-02 14:16:30

0

您使用調試的依賴你的環境。在IDE中,通常使用IDE的內置調試器,但如果您在命令行中工作,則GDB可能是一個不錯的選擇。

1

一種方式是乾脆把COUT/printf的 後每個環路/重要功能,所以 怎麼看變量變化 和哪裏是錯誤的。

如果您可以改進它,該方法很好。而不是測試的一切,你應該使
它的習慣bisect代碼(分而治之),直到你找到的錯誤。
當然,您應該學習如何在編程環境中使用調試器。