39 c crash malloc objective-c ios
我的iOS应用程序存在很大问题:它有时会在没有详细调试错误的情况下崩溃.堆栈跟踪为空.这些是堆栈跟踪中仅有的两行:
在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
Run Code Online (Sandbox Code Playgroud)
我在malloc_error_break中使用libsystem_c.dylib设置了断点,没有来自调试器的任何反馈.我不知道要解决这个问题.
Ped*_*res 42
要找到问题的根源,请在Xcode中转到产品>方案>编辑方案,然后在诊断选项卡下启用所有Malloc设置和Guard Malloc.
有了它,再次运行您的应用程序,Xcode将停在导致问题的行.

use*_*321 25
由于您在调试器中,您应该查看内存位置0x208a7614并查看其中的内容.内存中的数据可能有助于弄清楚出了什么问题.
发生的事情是以下之一:
你释放一个物体两次,
你正在释放一个从未分配过的指针
您正在通过一个无效指针进行编写,该指针先前指向已释放的对象
由于堆栈跟踪是空的,因此在各个位置向代码中添加一些调试日志语句可能会很有用,看看是否可以缩小代码中问题所在的位置.使用Instruments中的内存工具也可能有所帮助.您可以尝试启用NSZombies,但这看起来像是C分配问题,而不是Objective-C问题.
此外,在崩溃之前是否有其他任何内容写入控制台?如果是这样,它可能会指出问题的来源.