我有一个正在开发的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防护启用自动释放基于分配的一些对象??
发布于 2010-02-08 18:36:37
你正在释放一些自动释放的内存。
NSString* aVar = [NSString stringWithFormat:@"Hello %@", worldVariable];
...
[aVar release];
这不会在release语句中崩溃(因为引用计数至少为1),但会在运行循环中自动释放池被“排空”的某个稍后点崩溃。
https://stackoverflow.com/questions/2220810
复制相似问题