malloc:检测到堆损坏,空闲列表已损坏

malloc: Heap corruption detected, free list is damaged

提问人:Tapas Pal 提问时间:9/13/2019 更新时间:9/14/2023 访问量:10673

问:

我的应用程序在iOS 12之前运行良好。将我的 iOS 版本更新到 iOS 13 测试版后,该应用程序在随机位置崩溃并出现相同的错误。以下是 Xcode 控制台。

MyApp(618,0x10cebd800) malloc: Heap corruption detected, free list is damaged at 0x28ea33ff0
*** Incorrect guard value: 5276115984
MyApp(618,0x10cebd800) malloc: *** set a breakpoint in malloc_error_break to debug

任何调试/解决此问题的线索将不胜感激。提前致谢。

Swift 崩溃 malloc ios13 堆损坏

评论

0赞 ScottyBlades 9/24/2019
我在尝试滚动和重新加载表格时得到了这个。我认为这可能很有用:stackoverflow.com/questions/14045208/......
0赞 Tapas Pal 9/27/2019
@ScottyBlades就我而言,情况并非如此,事件仍然不确定实际情况。添加malloc_error_breakpoint后,它每次都显示不同的位置。
0赞 ScottyBlades 9/27/2019
哎呀。您是否搜索过“0x28ea33ff0”?我也许通过这样做找到了一些小线索。
0赞 ScottyBlades 9/27/2019
我在苹果的开发者网站上发帖,看看会不会有什么有用的东西。
2赞 ScottyBlades 10/18/2019
这可能会有所帮助,但并不是一刀切的。

答:

0赞 Malloc 1/28/2021 #1

正如你所说,你的应用程序在随机的地方崩溃,我还要添加随机时间,这可能是代码中某个地方的保留循环的明显迹象(可能是因为你忘记了在闭包中捕获一个自我),导致变得饱和。此时,系统肯定会决定终止您的应用程序进程并释放内存用于其他任务。

为了更清楚地看到这一点,请尝试使用 Leaks 分析模板分析您的应用程序(使用 Instruments 启动它),使用应用程序并尝试重现导致崩溃的场景,直到它被停止(终止),此时 Instruments 将为您提供更多详细信息。