无法在tabbar上找到随机崩溃的根本原因

时间:2014-01-16 10:52:33

标签: ios iphone objective-c ipad crash

我的iPad应用程序中有一个侧面板视图(如侧面抽屉),其中包含带有2个标签的标签栏。此视图超出了ipad可见屏幕,一旦我们从左侧拉出它就会变得可见。这将始终在应用程序启动时初始化。它在iOS 7.0.3和7.0.4上随机崩溃,主要是在iPad 4型号上。在调试器连接时,我无法在调试模式下重现它,并且在发布版本上重现频率为1%或更低。

这不是iOS问题,但任何猜测或任何人都面临并解决了类似的问题?

Crash report:

Hardware Model:      iPad3,4
Code Type:           ARM (Native)
OS Version:          iOS 7.0.4 (11B554a)

Crash report:
Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  12

Thread 0:
0   libsystem_kernel.dylib          0x38d7ebb4 syscall_thread_switch + 8
1   libsystem_platform.dylib        0x38df349c _os_lock_handoff_lock_slow + 48
2   libsystem_malloc.dylib          0x38db90f8 szone_free_definite_size + 328
3   libRIP.A.dylib                  0x2e4ffb72 ripc_ReleaseClipState + 34
4   libRIP.A.dylib                  0x2e503438 ripc_EndLayer + 80
5   CoreGraphics                    0x2e1c25e8 CGContextEndTransparencyLayer + 36
6   UIKit                           0x309e4d2a -[UIImage(TabBarItemImages) _tabBarItemImageWithTintColor:selected:metrics:style:forScreenScale:] + 902
7   UIKit                           0x309e5070 -[UIImage(TabBarItemImages) _unselectedTabBarItemImageWithTintColor:metrics:style:forScreenScale:] + 36
8   UIKit                           0x309e4748 -[UITabBarItem(Static) _updateImageWithTintColor:isSelected:getImageOffset:] + 552
9   UIKit                           0x309e414c -[UITabBarItem(Static) _createViewForTabBar:showingBadge:withTint:idiom:] + 956
10  UIKit                           0x309e3d82 -[UITabBarItem(Static) _createViewForTabBar:showingBadge:idiom:] + 34
11  UIKit                           0x309e0028 -[UITabBarItem(Static) _updateViewForIdiom:positionItems:] + 156
12  UIKit                           0x309e74ca -[UITabBar(Static) _configureItems:] + 402
13  UIKit                           0x309e6b7e -[UITabBar(Static) _positionTabBarButtons:ignoringItem:] + 1270
14  UIKit                           0x309e3b38 -[UITabBar setItems:animated:] + 1352
15  UIKit                           0x309e3522 -[UITabBarController _rebuildTabBarItemsAnimated:] + 798
16  UIKit                           0x309e7a74 -[UITabBarController _setSelectedViewController:] + 72
17  UIKit                           0x308cdcf2 +[UIView(Animation) performWithoutAnimation:] + 70
18  UIKit                           0x309eb470 -[UITabBarController _selectDefaultViewControllerIfNecessaryWithAppearanceTransitions:] + 216
19  UIKit                           0x309ea8e6 -[UITabBarController viewWillAppear:] + 130
20  UIKit                           0x308d66fa -[UIViewController _setViewAppearState:isAnimating:] + 342
21  CoreFoundation                  0x2e080800 __53-[__NSArrayI enumerateObjectsWithOptions:usingBlock:]_block_invoke + 48
22  CoreFoundation                  0x2e07a21a -[__NSArrayI enumerateObjectsWithOptions:usingBlock:] + 218
23  UIKit                           0x308d6876 -[UIViewController _setViewAppearState:isAnimating:] + 722
24  UIKit                           0x30a4ccfa -[UINavigationController _startCustomTransition:] + 842
25  UIKit                           0x3096aa12 -[UINavigationController _startDeferredTransitionIfNeeded:] + 414
26  UIKit                           0x3096a81c -[UINavigationController __viewWillLayoutSubviews] + 40
27  UIKit                           0x3096a7b4 -[UILayoutContainerView layoutSubviews] + 180
28  UIKit                           0x308bc34e -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 342
29  QuartzCore                      0x3054293e -[CALayer layoutSublayers] + 138
30  QuartzCore                      0x3053e162 CA::Layer::layout_if_needed(CA::Transaction*) + 346
31  QuartzCore                      0x3053dff4 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 12
32  QuartzCore                      0x3053da08 CA::Context::commit_transaction(CA::Transaction*) + 224
33  QuartzCore                      0x3053d81a CA::Transaction::commit() + 310
34  QuartzCore                      0x30537548 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 52
35  CoreFoundation                  0x2e102f66 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 18
36  CoreFoundation                  0x2e1008f2 __CFRunLoopDoObservers + 282
37  CoreFoundation                  0x2e100c3e __CFRunLoopRun + 734
38  CoreFoundation                  0x2e06b46c CFRunLoopRunSpecific + 520
39  CoreFoundation                  0x2e06b24e CFRunLoopRunInMode + 102
40  GraphicsServices                0x32d722e6 GSEventRunModal + 134
41  UIKit                           0x30920840 UIApplicationMain + 1132
42  MyApp                       0x0006b5f2 0x64000 + 30194
43  libdyld.dylib                   0x38cdaab4 start + 0


Thread 12 Crashed:
0   libsystem_kernel.dylib          0x38d911fc __pthread_kill + 8
1   libsystem_pthread.dylib         0x38df8a4e pthread_kill + 54
2   libsystem_c.dylib               0x38d42082 __abort + 74
3   libsystem_c.dylib               0x38d42034 abort + 84
4   libsystem_malloc.dylib          0x38dbf758 szone_error + 312
5   libsystem_malloc.dylib          0x38dbf9d4 free_list_checksum_botch + 24
6   libsystem_malloc.dylib          0x38dba1a4 tiny_free_list_remove_ptr + 76
7   libsystem_malloc.dylib          0x38db9770 szone_free_definite_size + 1984
8   libsystem_blocks.dylib          0x38cf7ac2 _Block_release + 214
9   libdispatch.dylib               0x38ccae76 _dispatch_queue_drain + 370
10  libdispatch.dylib               0x38cc7f8e _dispatch_queue_invoke + 38
11  libdispatch.dylib               0x38ccb742 _dispatch_root_queue_drain + 74
12  libdispatch.dylib               0x38ccb9c0 _dispatch_worker_thread2 + 52
13  libsystem_pthread.dylib         0x38df5dfc _pthread_wqthread + 296
14  libsystem_pthread.dylib         0x38df5cc0 start_wqthread + 4

类似情况下的另一次随机崩溃:

Thread 0 Crashed:
0   CoreFoundation                      0x311e9728 -[__NSDictionaryM objectForKey:] + 100
1   UIKit                               0x33a3e855 -[UILabel _setFont:] + 209
2   UIKit                               0x33b5a411 -[UITabBarButton initWithImage:selectedImage:label:withInsets:] + 293
3   UIKit                               0x33b59223 -[UITabBarItem(Static) _createViewForTabBar:showingBadge:withTint:idiom:] + 1171
4   UIKit                               0x33b58d87 -[UITabBarItem(Static) _createViewForTabBar:showingBadge:idiom:] + 39
5   UIKit                               0x33b5502d -[UITabBarItem(Static) _updateViewForIdiom:positionItems:] + 161
6   UIKit                               0x33b5c4cf -[UITabBar(Static) _configureItems:] + 407
7   UIKit                               0x33b5bb83 -[UITabBar(Static) _positionTabBarButtons:ignoringItem:] + 1275
8   UIKit                               0x33b58b3d -[UITabBar setItems:animated:] + 1357
9   UIKit                               0x33b58527 -[UITabBarController _rebuildTabBarItemsAnimated:] + 803
10  UIKit                               0x33b5ca79 -[UITabBarController _setSelectedViewController:] + 77
11  UIKit                               0x33a42cf5 +[UIView(Animation) performWithoutAnimation:] + 73
12  UIKit                               0x33b60475 -[UITabBarController _selectDefaultViewControllerIfNecessaryWithAppearanceTransitions:] + 221
13  UIKit                               0x33b5f8eb -[UITabBarController viewWillAppear:] + 135
14  UIKit                               0x33a4b6ff -[UIViewController _setViewAppearState:isAnimating:] + 347
15  CoreFoundation                      0x311f5803 __53-[__NSArrayI enumerateObjectsWithOptions:usingBlock:]_block_invoke + 51
16  CoreFoundation                      0x311ef21d -[__NSArrayI enumerateObjectsWithOptions:usingBlock:] + 221
17  UIKit                               0x33a4b87b -[UIViewController _setViewAppearState:isAnimating:] + 727
18  UIKit                               0x33bc1cff -[UINavigationController _startCustomTransition:] + 847
19  UIKit                               0x33adfa17 -[UINavigationController _startDeferredTransitionIfNeeded:] + 419
20  UIKit                               0x33adf821 -[UINavigationController __viewWillLayoutSubviews] + 45
21  UIKit                               0x33adf7b9 -[UILayoutContainerView layoutSubviews] + 185
22  UIKit                               0x33a31353 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 347
23  QuartzCore                          0x336b7943 -[CALayer layoutSublayers] + 143
24  QuartzCore                          0x336b3167 CA::Layer::layout_if_needed(CA::Transaction*) + 351
25  QuartzCore                          0x336b2ff9 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 17
26  QuartzCore                          0x336b2a0d CA::Context::commit_transaction(CA::Transaction*) + 229
27  QuartzCore                          0x336b281f CA::Transaction::commit() + 315
28  QuartzCore                          0x336ac54d CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 57
29  CoreFoundation                      0x31277f69 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 21
30  CoreFoundation                      0x312758f7 __CFRunLoopDoObservers + 287
31  CoreFoundation                      0x31275c43 __CFRunLoopRun + 739
32  CoreFoundation                      0x311e0471 CFRunLoopRunSpecific + 525
33  CoreFoundation                      0x311e0253 CFRunLoopRunInMode + 107
34  GraphicsServices                    0x35ee12eb GSEventRunModal + 139
35  UIKit                               0x33a95845 UIApplicationMain + 1137
36  SofTestM                            0x000545f7 0x4d000 + 30199

第二次崩溃是在将字体设置为

UITabBar-->UITabBarButton->UILabel (of UITabBarButton) _setFont:

1 个答案:

答案 0 :(得分:1)

我觉得这种随机崩溃可能是由于您的应用程序中的内存泄漏。请原谅我,如果我错了。 在您的日志中,您可以看到您使用CoreGraphics。即使您有ARC,也有点棘手,因为它不是100%内存叶子证明。这有时需要一段时间才能发布。 因此,假设您在循环中使用核心图形对象,那么可以确定您的ipad内存将超出范围。