Xcode - 我的应用程序崩溃,错误是“从无效列表中退出的无效指针***在malloc_error_break中设置断点以进行调试”

时间:2015-04-30 07:47:15

标签: ios xcode memory malloc

我的应用程序在模拟器上运行完美。 但是当我在设备上运行时,应用程序崩溃并显示错误:

  

“malloc: *对象0x17415d0c0的错误:无效指针已出列   从免费清单   * 在malloc_error_break中设置断点以调试“;

我在malloc_error_break中搜索并设置断点进行调试,但仍无法找到问题。我试图改变项目的方案,启用Zombie Object,但找不到答案。

我也尝试使用乐器,但我并不擅长。

3 个答案:

答案 0 :(得分:13)

我已经在iOS 8.3上使用Xcode 8修复了此错误。 我刚刚将部署目标从8.3更改为8.0。 如果在迁移到Xcode 8后现在出现错误,并且您的设备在iOS 8控制下运行,则可能是暂时的决定。

UPD:Xcode 8.1 beta修复了此错误。

答案 1 :(得分:2)

使用Xcode 8解决了同样的问题。 准备iOS10兼容版本,更新为推荐的Swift Migration 2.3,在iOS9和iOS10上运行完美,但在iOS8.4上崩溃。我还原了代码和Main.storyboard中的更改,并使用Xcode 7.3在iOS8上构建相同的内容修复了我的问题。

答案 2 :(得分:0)

我也遇到了这个奇怪的错误,我谷歌并且人们说这是Swift的错误,还没有修复。 我逐行调试,找出解决方案。

出现此错误的原因

EditRecordVC我有通用类型函数func update<RO>(operation: RO) where RO : RealmOperation, RO.R == EditRecordVC.R

在其子类ConflictedRecordEditVC中,我覆盖了函数,我输入update,Xcode帮我完成整个函数override func update<RO>(record: Record?, operation: RO?) where RO : RealmOperation, RO.R == Record,编译得很好。

运行代码,执行覆盖函数后,会出现此错误,Xcode会在某个随机行停止,没有人能够发现它是由此函数引起的。

我逐行调试,发现我必须将泛型类型更改为override func update<RO>(operation: RO) where RO : RealmOperation, RO.R == Record,一切都会再次运行。

当我错误地添加时我忘记了Xcode没有生气。

因此,请检查泛型类型函数,并确保它与超类

完全相同