我正在开发一个使用ASIHTTP框架进行休息Web服务的iPhone应用程序。不知何故,我的应用程序崩溃,并收到如下错误
Application(1565,0x3b06318c) malloc: *** mach_vm_map(size=32768) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
并且ASIHTTPRequest类的以下代码中发生了崩溃
CFRunLoopSourceContext context = {0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
CFRunLoopSourceRef source = CFRunLoopSourceCreate(kCFAllocatorDefault, 0, &context);
CFRunLoopAddSource(CFRunLoopGetCurrent(), source, kCFRunLoopDefaultMode);
BOOL runAlways = YES; // Introduced to cheat Static Analyzer
while (runAlways) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0e10, true);
[pool drain];
}
// Should never be called, but anyway
CFRunLoopRemoveSource(CFRunLoopGetCurrent(), source, kCFRunLoopDefaultMode);
CFRelease(source);
我用Google搜索了这次崩溃,我读到这是一个memory allocator
的问题,并没有得到太多信息。此外,我分析并没有任何潜在的泄漏。我的应用程序也准备好提交到App Store。请帮我。提前谢谢。
我发现了崩溃发生的地方。当其他进程变为零KB时在利用率比较中,我的应用程序在CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0e10, true);
行崩溃。