2012-10-05 53 views
-4

夥計們! 我寫了一個C++源代碼。 但是我發現某個地方有錯誤。g ++,如何找到哪裏有錯誤?

「段錯誤:11」

但我不知道該錯誤以及解決的細節?

你們知道一些命令可以顯示錯誤的位置嗎?

謝謝

+5

嘗試調試器。 – chris

+3

發佈一些代碼,特別是在處理指針的地方。顯然你有一個無效的指針,導致你訪問你不應該的內存。 – TJD

+5

啊,這是傳說中的'fix_bugs -all'命令。幾乎沒有人知道它,掌握了它。 –

回答

0

這聽起來像你的程序試圖訪問一個無效的(不存在的)地址。它也可能嘗試訪問未對齊的數據。在嘗試訪問錯位結構之前,我已經看到了這一點。

上分段錯誤讀了起來:http://en.wikipedia.org/wiki/Segmentation_fault

5

隨着gcc生成的代碼通常使用一個基於gdb工具或gdb本身。只要運行

gdb <program> 

...然後裏面gdb

run <arguments> 

...並且它將停止在崩潰發生。

要獲得想要使用調試信息編譯的程序位置的合理信息,即使用-g選項。爲避免混淆,您可能希望在不進行優化的情況下進行編譯,即沒有任何-O...選項。但是,只有打開優化時纔會觸發某些錯誤(請注意:優化器中的代碼通常仍然存在錯誤,並且而不是)。

相關問題