簡體   English   中英

malloc: *** 錯誤:釋放的校驗和不正確 object - object 可能在釋放后被修改

[英]malloc: *** error: incorrect checksum for freed object - object was probably modified after being freed

我的 iOS 應用程序有一個大問題:它有時會在沒有詳細調試錯誤的情況下崩潰。 堆棧跟蹤為空。 這些是堆棧跟蹤中僅有的兩行:

  1. UIApplicationMain 中的崩潰開始於“符號存根:-[_UIHostedTextServiceSession dismissTextServiceAnimated:]”。
  2. 並報告“libsystem_c.dylib`malloc_error_break”。

com.apple.main-thread中。

Xcode 調試器(連接設備)的錯誤:

malloc: *** error for object 0x208a7614: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug

我已經使用 libsystem_c.dylib 在 malloc_error_break 中設置了一個斷點,但沒有來自調試器的任何反饋。 我不知道要解決這個問題。

要找到問題的根源,請在Xcode中轉到產品>方案>編輯方案,然后在診斷選項卡下啟用所有Malloc設置和Guard Malloc。

有了它,再次運行您的應用程序,Xcode將停在導致問題的行。

方案定義

由於你在調試器中,你應該查看內存位置0x208a7614 ,看看有什么。 內存中的數據可能有助於弄清楚出了什么問題。

發生的事情是以下之一:

  1. 你釋放一個物體兩次,

  2. 你正在釋放一個從未分配過的指針

  3. 您正在通過一個無效指針進行編寫,該指針先前指向已釋放的對象

由於堆棧跟蹤是空的,因此在各個位置向代碼添加一些調試日志語句可能很有用,看看是否可以縮小代碼中問題所在的位置。 使用Instruments中的內存工具也可能有所幫助。 您可以嘗試啟用NSZombies,但這看起來像是C分配問題,而不是Objective-C問題。

此外,在崩潰之前是否有其他任何內容寫入控制台? 如果是這樣,它可能會指出問題的來源。

嗨大家好我已經找到了這個解決方案,如果你正在使用nib或xib接口,當你想要推送一個viewcontroller對象時你遇到這個問題然后一段時間會發生這個錯誤,你的應用程序將崩潰(特別是iPad中的錯誤)這里是解:

//像這樣的格式

UINavigationController *nav=[[UINavigationController      alloc]initWithRootViewController:yourViewControllerObj];

[self.navigationController  presentViewController:nav animated:true completion:nil];

不要試圖推動這種情況。

如果你有這個問題。 轉到:product-> scheme-> diagnosis->然后啟用mollic gaurd edgezombie對象然后關閉然后去產品 - >停止然后再次產品構建並運行。 最好的

我有相同的問題。

我有一個 macOS 2015,big sur 11.7。

這一切都是從我更新我的 xcode 開始的。似乎 big sur 可用的最后一個 xcode 版本有一些錯誤。

調用c++和python重復的fortran代碼沒有運行

我將 xcode 降級到 12.5,以及這個 xcode 版本的命令行工具,但仍然有同樣的問題。

而且是間歇性的。 有時代碼會產生錯誤,有時不會……

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM