我在XCode中遇到了一些非常奇怪的錯誤。每當我運行我的程序,我得到:奇怪的XCode/Objective-C錯誤:失敗的完整性檢查
malloc: test_node_integrity: FreeListNode 0x1052af0 { _prev = 0xffffffff, _next = 0xffffffff, _size = 0 } failed integrity check.
我已經找遍了谷歌,但沒有發現任何人有此錯誤消息。堆棧跟蹤具有不在我的程序中的方法 - 它是XCode正在運行的其他線程。無論如何,我可以獲得更多有關這方面的信息嗎?我已經嘗試卸載/重新安裝XCode(10.5.8,XCode 3.1)。
我正在使用垃圾收集,所以我想知道是否有錯誤。我曾經得到一個不同的錯誤,"missing cpu_capibilites.h,"
這將指向一個字符串格式化方法。該錯誤更改爲一個與調試器無法回滾狀態,現在我有這個錯誤。
如果還有其他任何我應該發佈的錯誤信息,請告訴我。
當你使用GC時,問題不一定就是內存碎片,至少不是在傳統的「free()''free')手動內存管理意義上使用。因爲Cocoa的GC系統嚴重依賴於知道哪些指針是GC,哪些不是,所以導致它丟失跟蹤的任何事情都會導致這樣的問題。例如,可以編寫「無錯代碼」,並在運行時由於編譯器/ GC錯誤而導致失敗 - 例如,通過另一個指針引用全局'__strong'指針變量。我發現用Cocoa的GC系統編寫工作程序幾乎是不可能的。 – johne 2009-08-18 03:10:51
那麼,作爲負責Xcode的Apple經理,我負責使用Cocoa GC系統的2.5MLOC,當我們遇到像上面這樣的失敗時,它幾乎總是一段代碼,它將一個指向GC對象的指針,不告訴GC系統,然後在物體收穫後寫入GC內存。 – cdespinosa 2009-08-18 16:53:22