2017-05-02 233 views
1

因此,我收到了我的iOS应用程序的Crashlytics崩溃报告。对于一些用户来说,应用程序在崩溃日志中已经崩溃并给出了SIGABRT。iOS:从Crashlytics了解SIGABRT崩溃

我一直在试图找到无数小时的错误原因,但由于错误的稀有性(大约1-2%的用户),我一直无法重现错误,并且由于信息量有限Crashlytics,我一直无法找到这个错误的根源。

部署目标是iOS 7的应用程序和各种规模的iOS 10+的设备正在经历崩溃(我不确定iOS 9,8或7是否也遇到错误 - Crashlytics只显示崩溃iOS版10+)

这里是堆栈跟踪:

CRASH_INFO_ENTRY_1 
*** error for object 0x17127f4c0: Invalid pointer dequeued from free list 
CRASH_INFO_ENTRY_0 
abort() called 

Crashed: com.apple.main-thread 
SIGABRT ABORT 0x000000018e2ea014 

#0. Crashed: com.apple.main-thread 
0 libsystem_kernel.dylib   0x18f6ca014 __pthread_kill + 8 
1 libsystem_pthread.dylib  0x18f791460 pthread_kill + 112 
2 libsystem_c.dylib    0x18f63e3f4 abort + 140 
3 libsystem_malloc.dylib   0x18f70ea38 
_nano_vet_and_size_of_live + 330 
4 libsystem_malloc.dylib   0x18f710bf0 
_nano_malloc_check_clear + 392 
5 libsystem_malloc.dylib   0x18f70fbb4 nano_calloc + 80 
6 libsystem_malloc.dylib   0x18f701180 malloc_zone_calloc + 152 
7 libsystem_malloc.dylib   0x18f7010c4 calloc + 40 
8 libobjc.A.dylib    0x18f131cfc cache_t::reallocate(unsigned int, unsigned int) + 52 
9 libobjc.A.dylib    0x18f1321fc cache_fill + 216 
10 libobjc.A.dylib    0x18f13cd00 lookUpImpOrForward + 412 
11 libobjc.A.dylib    0x18f147258 _objc_msgSend_uncached + 56 
12 UIKit       0x1967274e8 -[UITableView _endCellAnimationsWithContext:] + 13964 
13 Champion      0x100097bf4 -[MatchdayComposeController controllerDidChangeContent:] (MatchdayComposeController.m:427) 
14 CoreData      0x192abfe28 __82-[NSFetchedResultsController(PrivateMethods) _core_managedObjectContextDidChange:]_block_invoke + 4760 
15 CoreData      0x192abeb80 -[NSFetchedResultsController(PrivateMethods) _core_managedObjectContextDidChange:] + 124 
16 CoreFoundation     0x19069622c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20 
17 CoreFoundation     0x190695930 _CFXRegistrationPost + 400 
18 CoreFoundation     0x1906956ac ___CFXNotificationPost_block_invoke + 60 
19 CoreFoundation     0x190704b9c -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1504 
20 CoreFoundation     0x1905d7bf4 _CFXNotificationPost + 376 
21 Foundation      0x1910de6bc -[NSNotificationCenter postNotificationName:object:userInfo:] + 68 
22 CoreData      0x1929eed1c -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] + 724 
23 CoreData      0x192a75170 -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:deletions:updates:refreshes:deferrals:wasMerge:] + 1336 
24 CoreData      0x1929ed338 -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 2116 
25 CoreData      0x1929ebe3c -[NSManagedObjectContext save:] + 416 
26 Champion      0x10008e2ac -[AppDelegate saveContext] (AppDelegate.m:263) 
27 Champion      0x10009d1d4 +[Globals saveManagedObjectContext] (Globals.m:157) 
28 Champion      0x10006ee4c -[EntitySyncClient saveUpdates:] (EntitySyncClient.m:232) 
29 Champion      0x1000690a0 -[MatchController datepickerDidChangeValue:] (MatchController.m:994) 
30 UIKit       0x1965799a0 -[UIApplication sendAction:to:from:forEvent:] + 96 
31 UIKit       0x196579920 -[UIControl sendAction:to:forEvent:] + 80 
32 UIKit       0x196563dd0 -[UIControl _sendActionsForEvents:withEvent:] + 452 
33 UIKit       0x196e62c44 -[_UIDatePickerView pickerView:didSelectRow:inComponent:] + 540 
34 UIKit       0x1967b965c -[UIPickerView _sendSelectionChangedForComponent:notify:] + 116 
35 UIKit       0x1967b9894 -[UIPickerView _sendSelectionChangedFromTable:notify:] + 344 
36 UIKit       0x196ce6878 -[UIPickerTableView _scrollingFinished] + 188 
37 UIKit       0x196ce6a50 -[UIPickerTableView scrollViewDidEndDecelerating:] + 28 
38 UIKit       0x196857abc -[UIScrollView(UIScrollViewInternal) _scrollViewDidEndDeceleratingForDelegate] + 132 
39 UIKit       0x1966ed2cc -[UIScrollView(UIScrollViewInternal) _stopScrollDecelerationNotify:] + 332 
40 UIKit       0x1966ece08 -[UIScrollView _smoothScrollWithUpdateTime:] + 2356 
41 QuartzCore      0x1938ff640 CA::Display::DisplayLinkItem::dispatch(unsigned long long) + 44 
42 QuartzCore      0x1938ff4ec CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 444 
43 IOKit       0x190968570 IODispatchCalloutFromCFMessage + 372 
44 CoreFoundation     0x19069256c __CFMachPortPerform + 180 
45 CoreFoundation     0x1906aa934 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 56 
46 CoreFoundation     0x1906aa0e8 __CFRunLoopDoSource1 + 436 
47 CoreFoundation     0x1906a7bcc __CFRunLoopRun + 1840 
48 CoreFoundation     0x1905d6048 CFRunLoopRunSpecific + 444 
49 GraphicsServices    0x192059198 GSEventRunModal + 180 
50 UIKit       0x1965af818 -[UIApplication _run] + 684 
51 UIKit       0x1965aa550 UIApplicationMain + 208 
52 Champion      0x1000b082c main (main.m:14) 
53 libdispatch.dylib    0x18f5b85b8 (Missing) 

我将是任何形式的援助非常感激。如果我能得到任何用于再现Crashlytics错误的指针,我也将不胜感激。

更新与代码

controllerDidChangeContent:主要表视图更新结束的问题。

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller { 
    [self.tableView endUpdates]; 
    if(controller.fetchedObjects.count == 0){ 
     self.showsNoMatchesHint = YES; 
    } 
    else{ 
     self.showsNoMatchesHint = NO; 
    } 
} 
+0

请注意错误本身读取:“无效指针从空闲列表中出列”。 这里有几个可能有用的SO帖子:[one](http://stackoverflow.com/questions/29961954/xcode-my-app-crash-and-the-error-is-invalid-pointer-dequeued-from - 免费列表)和[二](http://stackoverflow.com/questions/41809388/invalid-pointer-xcode-8) – shim

+0

嗯,我已经尝试了第二个链接(僵尸,内存泄漏)的一切,但没有用。我仍然无法在我的设备或模拟器上重现此崩溃。我很犹豫是否改变了第一个链接中给出的部署目标,但似乎这是唯一剩下的事情。 –

+0

用你的'MatchdayComposeController controllerDidChangeContent:'方法更新你的问题并指出第427行。 – rmaddy

回答

0

鉴于你的程序的最后关头是_endCellAnimationsWithContext,而这些类型的动画时特别表完成单元格编辑操作的单元格编辑完成后,通常会出现,我会考虑的问题。有一个选择器视图和一个通知也在那里,所以应该缩小一些。祝你好运。

0

它看起来像引起这行代码

[self.tableView endUpdates];

我建议你确保-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView的逻辑是正确的。例如,它在数组为空时不返回0。祝你好运。