设置malloc_error_break断点调试

问题描述:

我在这里得到错误:设置malloc_error_break断点调试

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

像这样:malloc的:*错误对象0x7f8480743a00:被释放的指针没有被分配 *设置malloc_error_break到断点调试

后在断点导航符号断点添加malloc_error_break得到同样的错误

您可以设置一个单一的“所有异常breakp oint“就像你可以在这里看到Exception Breakpoint in Xcode找到异常来自哪里。

+0

再次使用异常断点此错误的malloc后:***错误对象0x7ff02c3af000:双自由 ***设置malloc_error_break断点 – Naresh

+0

是否使用ARP调试 (LLDB)? –

+0

不使用ARP,我不知道什么是ARP – Naresh

对于这种内存错误,ASAN(地址清理器)通常是一个有用的工具。它测试你的代码,以便它可以在发生的地方捕获不正确的malloc的使用,而不是稍后它们炸毁的时候。它记录给定地址的免费事件分配的历史记录,例如,如果您有双倍免费的话,它会向您显示两个空闲点。

您可以通过编辑Xcode中的运行方案,打开Diagnostics选项卡并打开Address Sanitizer打开此项。这将需要重新构建,并且测试后的二进制文件将运行得稍慢一些,但通常不会太慢,以至于无法使程序进入失败点。