在malloc_error_break中设置断点以进行调试

时间:2017-04-19 06:59:05

标签: ios objective-c debugging malloc

我这里得到错误:

[self.points addObject:@{@"latt": 
[NSNumber numberWithFloat:(latitudeString.floatValue)],@"long": [NSNumber numberWithFloat:(longitudeString.floatValue]}];

像这样:malloc: *对象0x7f8480743a00的错误:释放的指针未分配 * 在malloc_error_break中设置断点以进行调试

在Breakpoint Navigator中的Symbolic Breakpoint中添加malloc_error_break后获得相同的错误

2 个答案:

答案 0 :(得分:2)

对于此类内存错误,ASAN(地址清理程序)通常是一种有用的工具。它可以检测您的代码,以便捕获错误的malloc&他们发生的地方是免费的,而不是在他们爆炸的时候。它记录了分配的历史和某个地址的免费活动,例如,如果你有一个免费的双倍,它会显示两个免费积分。

您可以通过编辑Xcode中的运行方案,转到诊断选项卡,然后启用Address Sanitizer来启用此功能。这将需要重建,并且经过检测的二进制文件运行速度会慢一点,但通常不会太慢,以至于无法使程序运行到失败点。

答案 1 :(得分:0)

您可以设置一个“所有例外断点”,就像您可以在此处Exception Breakpoint in Xcode查看,以找到异常的真正来源。