iPhone开发 - 可以对此内存错误做些什么:

时间:2010-08-02 16:29:19

标签: iphone memory-leaks memory-management

Dual Search(8896,0xb014b000) malloc: *** error for object 0x5a1e0f0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

谢谢!

3 个答案:

答案 0 :(得分:0)

听起来像双重释放。我强烈建议你先看看the rules。这些对于了解和理解至关重要。他们还会帮助您了解何时以及出于何种原因致电-release,-copy,-retain等。

快速浏览一下,CSA可能会使用构建和分析来捕获它,但不要屏住呼吸。

答案 1 :(得分:0)

您可以尝试将断点设置为malloc_error_break,如SDK所示。要做到这一点,只需在应用程序启动后的任何时候在控制台中输入(gdb)后输入“b malloc_error_break”。 Xcode将在您执行无效内存释放的位置停止在调试器中。

答案 2 :(得分:0)

删除所有对象释放意味着您分配的内存不会被释放,因此会对内存管理产生影响。确保您创建的每个内存分配都有一个版本。