仅在启用mallocguard时获取exc_bad_access错误

时间:2010-02-08 10:16:25

标签: iphone malloc guard

我有一个开发中的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 guard能够根据分配自动释放一些对象?

1 个答案:

答案 0 :(得分:0)

你正在发布一些自动释放的内存。在没有看到任何代码的情况下,很难说出问题到底是什么,但它看起来像这样:

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

...

[aVar release];

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