iOS错误:检测到堆损坏,空闲列表已损坏,并且保护值不正确:0

GUO*_*HUA 9 objective-c ios xcode10

GFF_MJ(3248,0x103f9ab80) malloc: Heap corruption detected, free list is damaged at 0x28298ffa0
*** Incorrect guard value: 0
GFF_MJ(3248,0x103f9ab80) malloc: *** set a breakpoint in malloc_error_break to debug
Run Code Online (Sandbox Code Playgroud)

错误截图:

在此处输入图片说明

运行一段时间后,该应用程序始终崩溃,但是除了上述提示之外,我没有任何信息。现在我不知道该如何解决,谁能帮助我?

谢谢。

bbu*_*bum 7

这些bug不好玩。最有可能的是,您的某处有缓冲区溢出,或者在释放内存并踩到其他东西后正在使用一块内存。

由于您可以使其在调试器中崩溃,因此更容易进行跟踪。

首先在上设置一个断点malloc_error_break,如错误消息指示您执行此操作。当您达到该断点时,将提供更多线索,但可能仍然含糊不清。但是,您将可以发布更多线索,我们可以从那里为您提供帮助。

  • 在我的例子中,启用“AddressSanitizer”立即解决了问题区域。我正在使用已释放的内存 - 哎呀。 (2认同)

Mar*_*k H 6

我在 macOS 上遇到此错误。清理构建文件夹解决了这个问题。


小智 5

就我而言,这是模拟器(及其内存)的问题。

清理构建文件夹后尝试在真实设备中编译它或关闭模拟器并再次运行。