什么可能导致libdispatch-manager线程崩溃?

时间:2013-05-23 15:33:04

标签: ios core-data grand-central-dispatch crash-reports

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 个答案:

答案 0 :(得分:6)

该崩溃几乎肯定不会在调度管理器线程上发生(尽管崩溃报告声称),因为它在kevent64系统调用中的内核中被阻止。

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

如果你在这里列出的那些线程旁边有其他线程,那么值得查看它们是否可能是崩溃的线程,否则罪魁祸首是主线程上的dealloc

答案 1 :(得分:0)

您在NSFetchedResultsController中使用的谓词看起来有问题。处理通知时出现问题,可能是在保存对托管对象上下文的更改时发布的通知。这就是堆栈跟踪所说的所有内容。 什么错误的谓词以及为什么现在这个问题在没有看到某些代码的情况下无法回答。