如何“在malloc_error_break中设置一个断点来调试”

时间:2012-12-26 19:24:29

标签: iphone ios

如果没有我的应用程序崩溃,我会收到很多这样的控制台输出:

  

malloc: *对象0xc6a3970的错误:被释放的指针不是   assigned * 在malloc_error_break中设置断点以进行调试

如何找出受影响的对象或变量?

我尝试设置这样的符号断点,但它永远不会停止:

enter image description here

5 个答案:

答案 0 :(得分:120)

通过打开断点导航器(View-> Navigators-> Show Breakpoint Navigator或⌘7​​),单击左下角的加号按钮,然后选择“添加符号断点”,在malloc_error_break()上设置断点。在弹出的弹出窗口中,在符号字段中输入malloc_error_break,然后单击完成。

编辑:openfrog添加了一个屏幕截图,表示他已经尝试了这些步骤而没有成功之后我发布了我的答案。有了这个编辑,我不知道该说些什么。我没有看到自己无法工作,事实上我总是在malloc_error_break集上保留一个断点。

答案 1 :(得分:42)

在屏幕截图中,您没有指定任何模块:尝试设置“libsystem_c.dylib”

enter image description here

我做到了,它确实有效:断点在这里停止 (虽然堆栈跟踪经常从一些不起眼的系统lib中升起......)

答案 2 :(得分:5)

我遇到了与Xcode相同的问题。我按照你给的步骤进行操作,但是没有用。 我变得疯狂,因为在我看到的每个论坛中,这个问题的所有线索都是你给出的。 我终于看到我在malloc_error_break之后放了一个空格,我压制了它,现在它起作用了。 一个愚蠢的问题,但如果解决方案不起作用,请确保您没有在malloc_error_break之前和之后放置任何空格。

希望这条消息有所帮助..

答案 3 :(得分:4)

我已经授予了权限,我不应该在某些文件夹中写入(特别是/ usr / bin /),这导致了问题。我通过打开“磁盘工具”并运行“修复磁盘权限”来修复它。在Macintosh HD磁盘上。

答案 4 :(得分:2)

我通过近距离野生动物园检查员解决。请参阅我的 post 。当我运行我的应用程序进行测试时,我也发现了声音,然后我打开了自动检查器的safari,之后,我在我的应用程序中执行了一些操作,然后触发了此问题。

enter image description here