0

我有一个正在开发的 iPhone 应用程序,它在 Malloc 防护未启用时可以正常工作。但是,当我尝试启用 malloc 保护时,加载应用程序后出现以下错误。

#0  0x95f65684 in objc_msgSend ()

#1 0x30506515 in NSPopAutoreleasePool ()

#2 0x30901697 in _UIApplicationHandleEvent ()

#3 0x32046375 in PurpleEventCallback ()

#4 0x30245560 in CFRunLoopRunSpecific ()

#5 0x30244628 in CFRunLoopRunInMode ()

#6 0x308f930d in -[UIApplication _run] ()

#7 0x309021ee in UIApplicationMain () 现在我的问题是我无法调试它得到错误的确切位置..尝试了 malloc_error_break 但没有成功。是不是 malloc 守卫启用自动释放一些基于分配的对象?

4

1 回答 1

0

您正在释放一些自动释放的内存。如果没有看到您的任何代码,很难说出究竟是什么问题,但它看起来像这样:

NSString* aVar = [NSString stringWithFormat:@"Hello %@", worldVariable];

...

[aVar release];

这不会在发布语句中崩溃(因为引用计数至少为 1),但在运行循环中的某个稍后点崩溃,其中自动释放池“耗尽”。

于 2010-02-08T10:36:36.563 回答