Iphone 在Xcode 4中设置malloc\u错误\u中断

Iphone 在Xcode 4中设置malloc\u错误\u中断,iphone,ios,xcode,Iphone,Ios,Xcode,如何在Xcode4中设置malloc\u错误\u中断?此外,我似乎收到了以下错误malloc:**object 0x4d80814的错误:已释放对象的校验和不正确-对象可能在被释放后被修改。 我是否可以检查对象0x4d80814是什么?它不会显示在调试器的变量列表中 我想就是这样做的 单击上左侧栏顶部的断点导航器(看起来像一个标志杆) 代码4 在左下角有一个加号。点击它 添加符号断点并将malloc\u error\u break设置为符号 单击底部面板上的下一个断点按钮(看起来像|>)。它

如何在Xcode4中设置malloc\u错误\u中断?此外,我似乎收到了以下错误
malloc:**object 0x4d80814的错误:已释放对象的校验和不正确-对象可能在被释放后被修改。


我是否可以检查对象0x4d80814是什么?它不会显示在调试器的变量列表中

我想就是这样做的

  • 单击上左侧栏顶部的断点导航器(看起来像一个标志杆) 代码4
  • 在左下角有一个加号。点击它
  • 添加符号断点并将malloc\u error\u break设置为符号
  • 单击底部面板上的下一个断点按钮(看起来像|>)。它将带您到达导致错误的线路

通常是由于对象被创建为其他尚不存在的对象的子对象(即在其spritenode存在之前创建的SKPhysicsBody)

这就是断点按钮的外观:

这是左下角的加号:


老兄,我花了一段时间才找到他们两个

您也可以通过gdb命令窗口直接执行此操作

break malloc_error_break
或在lldb中:

breakpoint set -n malloc_error_break

要在XCode 4中打开调试器命令窗口,请单击右上角“视图”上方的中间按钮,然后单击刚刚打开的底部调试窗格右上角的中间按钮。另请参见

它没有显示在调试器中,因为它已被解除分配,并且可能在内部从苹果的代码中引用。我建议您使用Analyzer查找内存管理中的任何明显不一致之处。很可能您正在修改已解除分配的对象,而
malloc
稍后会检测到它。如果您分析错误并使用Zombies工具,您可能会找到错误的位置。请注意,这是针对gdb的,但默认调试器通常是lldb,它具有不同的语法。对于那些总是通过鼠标/键盘快捷键设置断点的人来说,这是一个新东西。不是每个人都知道这一点。你能为我提供这一点的更多细节吗:单击底部面板上的下一个断点按钮(看起来像|>)。它将带您到达导致错误的线路。我使用的是xcode 8,但没有找到|>这种符号