2011-10-27 97 views
0

我目前正在與間歇性錯誤進行對抗。我創建了我的班級的一個float成員。我將它初始化爲零。然後給它一個價值。這個變量在接下來的幾個過程中會被使用好幾次,而且不可思議的是它有時會將它的值更改爲一個非常小的值,並在我的程序中導致錯誤。我已經在我的代碼中確定了它發生的一般區域,並且我發誓,在我的代碼中沒有任何代碼處理這個變量。最重要的是,我會運行並編譯幾次具有相同確切代碼的相同程序,並且此錯誤有時會彈出。我想我的其他數組或指針之一偶爾會跳出界限(因爲我還沒有實現界限檢查),並用它自己的替換變量值,但我不知道哪一個。我想知道在XCode中是否有一種方法可以找出變量附近或旁邊存儲了哪些變量,以便我可以找出誰可能踩在這個可憐的槍的小兒子身上?如何找到某個變量旁邊存儲的內容

+0

一些像valgrind或合理淨化的分析工具? –

回答

1

您可以在XCode中啓用「guard malloc」。 Guard malloc可以告訴你你的代碼是否寫出了任何分配區域的邊界。我不知道啓用它的確切方式(不再),但你一定會在網上找到一些東西。

+0

您可以從XCode啓動儀器,這有助於找出這些問題。 –

+0

後衛malloc做到了。謝謝! – Hanley

0

如果您想在gdb調試代碼的同時觀看一些內存位置,則可以使用watch斷點。

也許你有一個損壞的內存堆。使用像valgrind這樣的工具可能會有所幫助。

相關問題