【发布时间】:2010-11-01 13:22:58
【问题描述】:
我正在用 Objective-C 编写一个应用程序,但我收到了这个错误:
MyApp(2121,0xb0185000) malloc: *** 对象 0x1068310 的错误: 双重释放
*** 在 malloc_error_break 中设置断点进行调试
当我释放 NSAutoreleasePool 时会发生这种情况,但我无法确定我要释放两次的对象。
如何设置他的断点?
有没有办法知道这个“对象0x1068310”是什么?
【问题讨论】:
-
你可能也想用 iPhone 标记这篇文章以吸引更多人
-
删除了“iphone”标签以支持其他更相关的标签。
-
我无法想象为什么这个 iPhone 问题会缺少 iPhone 标签。关注“iPhone”的人数肯定比关注“autorelease”等其他标签的人数要多。如果你想找到“autorelease”,你搜索它,你不跟随标签。所以我把“iPhone”放回去了。
-
我删除“iphone”标签的原因是因为这个问题没有什么是特定于 iPhone 的。唯一的链接是它发生在 iPhone 应用程序中,但完全相同的错误可能发生在任何 C 或 Objective-C 应用程序中。我不认为关注 iPhone 的人会随便对此感兴趣——相反,会是那些搜索诸如“double free”或“malloc_error_break”之类的东西的人,如果他们扔进“iPhone”,它仍然会出现.让我们不要为标签争吵,但考虑一下,也许回答的人可能知道问题的最佳归属。
-
这个问题至少是 Cocoa 特有的。如果 iPhone 标签有问题,那么可可标签呢?明显的意图适用于 XCode 中 Cocoa 上的 Objective-C。不是 Windows、Linux 或 XCode 上下文之外的 Objective-C。
标签: iphone objective-c memory-management malloc autorelease