我花了相當一段時間試圖追蹤這個問題,並從其他人那裏讀取多個相同問題的建議。我處理一個龐大的代碼庫,因此在沒有提示的情況下查找問題就像在乾草堆中尋找針。如何追查「釋放對象的錯誤校驗和」
關於我讀的建議是在* malloc_error_break *上添加一個斷點 - 但我該怎麼做。我知道我必須添加一個符號斷點,但我不確定在兩個文本字段Symbol和Module中輸入什麼內容?
我試圖啓用Malloc Scribble和Malloc Guard Edges - 但沒有一個會導致任何斷點或崩潰。
如果我啓用殭屍對象,程序停止崩潰,但輸出日誌中沒有任何內容顯示任何問題。
最後我試圖啓用Guard Malloc。據我所知,只有模擬器中工作,所以我試圖說 - 但問題是,這些程序在啓動階段執行崩潰在我的程序中的任何行之前:
0x958e0cd4 <+0000> mov 0x4(%esp),%eax
0x958e0cd8 <+0004> mov %gs:0x0(,%eax,4),%eax < Crash
0x958e0ce0 <+0012> ret
和調用堆棧看起來是這樣的:
pthread_getspecific
__dyld__dyld_start
我不知道我在做什麼錯在這裏?
symbol ='malloc_error_break'模塊在大多數情況下不需要定義。 – justin