什么原因会导致libdispatch-manager线程崩溃?

4
Date/Time: 2013-05-22 21:31:31.863 -0400  
OS Version: iOS 6.1.3 (10B329)  
Report Version: 104  

Exception Type: EXC_CRASH (SIGSEGV)  
Exception Codes: 0x0000000000000000, 0x0000000000000000  
Crashed Thread: 1  

Thread 0 name: Dispatch queue: com.apple.main-thread  
Thread 0:  
0 CoreFoundation 0x3203f950 -[NSArrayM dealloc] + 128    
1 Foundation 0x32999218 -[NSFunctionExpression dealloc] + 56  
2 Foundation 0x329991d8 -[NSKeyPathExpression dealloc] + 36  
3 Foundation 0x3299914c -[NSComparisonPredicate dealloc] + 40  
4 CoreData 0x31f6b672 -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:] + 1362  
5 CoreFoundation 0x32045034 _CFXNotificationPost + 1424  
6 Foundation 0x3295b594 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68  
7 CoreData 0x31ef9712 -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] + 74  
8 CoreData 0x31ef8c72 -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] + 294  9 CoreData 0x31e7abf4 - [NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 2676  
10 CoreData 0x31e7a10a _performRunLoopAction + 266  
11 CoreFoundation 0x320c96ca __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 18  
12 CoreFoundation 0x320c79bc __CFRunLoopDoObservers + 272  
13 CoreFoundation 0x320c7d12 __CFRunLoopRun + 738  
14 CoreFoundation 0x3203aeb8 CFRunLoopRunSpecific + 352  
15 CoreFoundation 0x3203ad44 CFRunLoopRunInMode + 100    
16 GraphicsServices 0x35bef2e6 GSEventRunModal + 70  
17 UIKit 0x33f502fc UIApplicationMain + 1116  
18 MyApp 0x00003fd6 main (main.m:16)  
19 MyApp 0x00003f8c 0x1000 + 12172  

Thread 1 name: Dispatch queue: com.apple.libdispatch-manager  
Thread 1 Crashed:  
0 libsystem_kernel.dylib 0x3a486648 kevent64 + 24  
1 libdispatch.dylib 0x3a3b6974 _dispatch_mgr_invoke + 792  
2 libdispatch.dylib 0x3a3b6654 _dispatch_mgr_thread$VARIANT$mp + 32  
2个回答

6

那个崩溃几乎肯定没有发生在调度管理器线程上(尽管崩溃报告声称如此),因为它在kevent64系统调用中被阻塞在内核中。

CrashReporter可能错误地识别了崩溃线程,或者您的进程可能已经被外部发送了SEGV信号。

如果除了您在此处列出的线程之外还有其他线程,则值得查看它们是否可能是导致崩溃的线程,否则罪魁祸首就是主线程上的dealloc


0

看起来您在使用NSFetchedResultsController时,谓词存在问题。该问题可能发生在处理通知时,可能是由于保存托管对象上下文中的更改时发布的通知之一导致的。这就是堆栈跟踪所说的全部内容。为什么此时谓词有问题以及它是什么问题,如果没有看到某些代码,就无法回答。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接