iOS 8上的神秘崩溃 [英] Mysterious crash on iOS 8
问题描述
我在iOS 8上收到了很多关于此堆栈跟踪的崩溃报告:
日期/时间:2014- 09-17T20:26:15Z
OS版本:iPhone OS 8.0(12A365)
报告版本:104
异常类型:SIGSEGV
异常代码:SEGV_ACCERR在为0x1
崩溃螺纹:0
导线0毁损:
0 libGPUSupportMercury.dylib 0x2a4f88fe gldGetBufferAllocationIdentifiers + 194
1个libGPUSupportMercury.dylib 0x2a4f93cb gpusSubmitDataBuffers + 108
2 libGPUSupportMercury .dylib 0x2a4f9249 gldCreateContext + 206
3 GLEngine 0x2613c93b gliCreateContextWithShared + 600
4 OpenGLES 0x26218ab3 glGetFramebufferParameteriAPPLE + 776
5 CoreImage 0x23e88b8b 0x23dea000 + 650123
6 libdispatch.dylib 0x314558b7 0x31454000 + 6327
7 libdispatch.dylib 0x314564fb dispat ch_once_f + 60
8 CoreImage 0x23e88afb 0x23dea000 + 649979
9 CoreImage 0x23e06c79 0x23dea000 + 117881
10 CoreUI 0x29478837 CUIEqualRenditionKeysIgnoringAttribute + 71800
11 libsystem_pthread.dylib 0x315b9dcf sched_get_priority_min + 64
12 libsystem_platform.dylib 0x315b2867 _os_once + 40
13分配libsystem_pthread.dylib 0x315b7f8b调用pthread_once + 48
14分配CoreUI 0x294787d9 CUIEqualRenditionKeysIgnoringAttribute + 71706
15分配CoreUI 0x2947faf7 CUIEqualRenditionKeysIgnoringAttribute + 101176
16分配的UIKit 0x26f649db _UIGraphicsEndLetterpressWithStyle + 20792
17 UIKit 0x26cf2875 UIGraphicsEndImageContext + 7838
18 UIKit 0x26cf1fb5 UIGraphicsEndImageContext + 5598
19 UIKit的0x26fe3db9 _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 287838
20分配的UIKit 0x26cf19c7 UIGraphicsEndImageContext + 4080
21分配的UIKit 0x26d8c1b1 UICeilToViewScale + 55778
22分配的UIKit 0x26d70143 _UIBarHairlineShadowColorForBarStyle + 10164
23分配的UIKit 0x26ce2b37 0x26cd6000 + 52023
24 QuartzCore 0x2670accd CABackingStoreGetTypeID + 894
25 QuartzCore 0x267066b5 CARenderServerGetServerPort + 5366
26的UIKit 0x26cf5183 UIGraphicsGetImageFromCurrentImageContext + 2068
27的UIKit 0x26cf1fb5 UIGraphicsEndImageContext + 5598
28的UIKit 0x26d6efc5 _UIBarHairlineShadowColorForBarStyle + 5686
29 UIKit 0x26d6 EC63 _UIBarHairlineShadowColorForBarStyle + 4820
30的UIKit 0x26d6e3cd _UIBarHairlineShadowColorForBarStyle + 2622
31的UIKit 0x26fd5a6f _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 229652
32的UIKit 0x26d6b837 _UIAccessibilityReduceMotion + 16948
33的UIKit 0x26ce53d9 _UIApplicationLinkedOnOrAfter + 2526
34的UIKit 0x26ce535d _UIApplicationLinkedOnOrAfter + 2402
35的UIKit 0x26d6b24d _UIAccessibilityReduceMotion + 15434
36的UIKit 0x26fd7ef9 _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 239006
37的UIKit 0x26d6b0b3 _UIAccessibilityReduceMotion + 15024
38的UIKit 0x26dc516f UIRectIntegralWithScale + 1040
39 Pogoplug0x001bccc9 __41- [InitialSlidingViewController didSignIn] _block_invoke(InitialSlidingViewController.m:216)
40 libdispatch.dylib 0x314558cb 0x31454000 + 6347
41 libdispatch.dylib 0x314558b7 0x31454000 + 6327
42 libdispatch.dylib 0x314590bf _dispatch_main_queue_callback_4CF + 720
43 CoreFoundation 0x2380dbe9 CFRunLoopTimerSetTolerance + 3370
44 CoreFoundation 0x2380c2e9 _CFRunLoopGet2b + 2926
45 CoreFoundation 0x2375a621 CFRunLoopRunSpecific + 474
46 CoreFoundation 0x2375a433 CFRunLoopRunInMode + 104
47 GraphicsServices 0x2ab080a9 GSEventRunModal + 134
48的UIKit 0x26d44809 UIApplicationMain + 1438
49 Pogoplug 0x0012c4bf主(的main.m:11)
50 libdyld.dylib 0x31475aaf _tlv_at退出+ 8
任何可能出错的线索都将非常感激。
这里第216行
MenuViewController * menuVC = [[MenuViewController alloc] initWithNibName:nil bundle:nil];
NavControllerPortrait * navController = [[NavControllerPortrait alloc] initWithRootViewController:menuVC];
主要使用iPhone 5和iPad 3rd gen(不确定仅限于这些设备)。
更多信息
另一种频繁发生的崩溃具有类似的堆栈跟踪并且由此代码导致:
CELoginViewController * loginVC = [[CELoginViewController alloc] initWithNibName:nil bundle:nil];
NavControllerPortrait * nav = [[NavControllerPortrait alloc] initWithRootViewController:loginVC];
所以我强烈怀疑或我的自定义UINavigationController或Apple对它的更改。鉴于我不是唯一经历过此次崩溃的人 - 我更倾向于责怪Apple: - )
谢谢。
我没有足够的声誉来评论和询问细节,但我遇到了同样的问题,主要是在iPhone 5上,还有5c,4s,iPad 3和iPod 5G,我相信即使它没有回答这个问题,我要说的也会有所帮助。
首先,这就是崩溃当您尝试使用OpenGL绘制内容或调整大小或在后台移动MKMapView 时会发生。在崩溃日志中可能并不明显,但我收到的每一个崩溃报告都是在后台启动应用程序的时候。考虑到UIViewController被称为InitialSlidingViewController,它似乎对你来说是一样的。在我的情况下大部分时间都是重要位置更新,但在您的情况下可能是后台获取或访问更新或无声远程通知。
我在我的应用程序中注意到的一件事是它在崩溃时设置导航栏,更具体地说是尝试渲染图像,我在导航栏中设置了着色图像。对于你来说这是另外一些需要OpenGL的东西,可能是像视差一样的动作效果,我在堆栈跟踪中看到_UIAccessibilityReduceMotion?
无论你是什么,或者我是事实上,它在某些设备上发生的事情更多,从不在某些设备上发生意味着它很可能是一个iOS错误。我在堆栈跟踪中也看到CI :: can_use_gpu(),因为它在检查是否可以使用gpu时使用gpu而崩溃。
那么我们如何防止它崩溃了?
你可以尝试禁用你正在使用的功能,对我来说,我会用正确颜色的图像替换图像,而不是使用淡色。
或者您可以尝试加载另一个视图控制器,可能只是一个空视图控制器,当应用程序在后台启动时,然后当它来到前台时,将视图控制器与您正在使用的视图控制器交换。 / p>
I'm getting a lot of crash reports on iOS 8 with this stack trace:
Date/Time: 2014-09-17T20:26:15Z
OS Version: iPhone OS 8.0 (12A365)
Report Version: 104
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0x1
Crashed Thread: 0
Thread 0 Crashed:
0 libGPUSupportMercury.dylib 0x2a4f88fe gldGetBufferAllocationIdentifiers + 194
1 libGPUSupportMercury.dylib 0x2a4f93cb gpusSubmitDataBuffers + 108
2 libGPUSupportMercury.dylib 0x2a4f9249 gldCreateContext + 206
3 GLEngine 0x2613c93b gliCreateContextWithShared + 600
4 OpenGLES 0x26218ab3 glGetFramebufferParameteriAPPLE + 776
5 CoreImage 0x23e88b8b 0x23dea000 + 650123
6 libdispatch.dylib 0x314558b7 0x31454000 + 6327
7 libdispatch.dylib 0x314564fb dispatch_once_f + 60
8 CoreImage 0x23e88afb 0x23dea000 + 649979
9 CoreImage 0x23e06c79 0x23dea000 + 117881
10 CoreUI 0x29478837 CUIEqualRenditionKeysIgnoringAttribute + 71800
11 libsystem_pthread.dylib 0x315b9dcf sched_get_priority_min + 64
12 libsystem_platform.dylib 0x315b2867 _os_once + 40
13 libsystem_pthread.dylib 0x315b7f8b pthread_once + 48
14 CoreUI 0x294787d9 CUIEqualRenditionKeysIgnoringAttribute + 71706
15 CoreUI 0x2947faf7 CUIEqualRenditionKeysIgnoringAttribute + 101176
16 UIKit 0x26f649db _UIGraphicsEndLetterpressWithStyle + 20792
17 UIKit 0x26cf2875 UIGraphicsEndImageContext + 7838
18 UIKit 0x26cf1fb5 UIGraphicsEndImageContext + 5598
19 UIKit 0x26fe3db9 _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 287838
20 UIKit 0x26cf19c7 UIGraphicsEndImageContext + 4080
21 UIKit 0x26d8c1b1 UICeilToViewScale + 55778
22 UIKit 0x26d70143 _UIBarHairlineShadowColorForBarStyle + 10164
23 UIKit 0x26ce2b37 0x26cd6000 + 52023
24 QuartzCore 0x2670accd CABackingStoreGetTypeID + 894
25 QuartzCore 0x267066b5 CARenderServerGetServerPort + 5366
26 UIKit 0x26cf5183 UIGraphicsGetImageFromCurrentImageContext + 2068
27 UIKit 0x26cf1fb5 UIGraphicsEndImageContext + 5598
28 UIKit 0x26d6efc5 _UIBarHairlineShadowColorForBarStyle + 5686
29 UIKit 0x26d6ec63 _UIBarHairlineShadowColorForBarStyle + 4820
30 UIKit 0x26d6e3cd _UIBarHairlineShadowColorForBarStyle + 2622
31 UIKit 0x26fd5a6f _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 229652
32 UIKit 0x26d6b837 _UIAccessibilityReduceMotion + 16948
33 UIKit 0x26ce53d9 _UIApplicationLinkedOnOrAfter + 2526
34 UIKit 0x26ce535d _UIApplicationLinkedOnOrAfter + 2402
35 UIKit 0x26d6b24d _UIAccessibilityReduceMotion + 15434
36 UIKit 0x26fd7ef9 _UINavigationButtonUpdateAccessibilityBackgroundsForBlendMode + 239006
37 UIKit 0x26d6b0b3 _UIAccessibilityReduceMotion + 15024
38 UIKit 0x26dc516f UIRectIntegralWithScale + 1040
39 Pogoplug 0x001bccc9 __41-[InitialSlidingViewController didSignIn]_block_invoke (InitialSlidingViewController.m:216)
40 libdispatch.dylib 0x314558cb 0x31454000 + 6347
41 libdispatch.dylib 0x314558b7 0x31454000 + 6327
42 libdispatch.dylib 0x314590bf _dispatch_main_queue_callback_4CF + 720
43 CoreFoundation 0x2380dbe9 CFRunLoopTimerSetTolerance + 3370
44 CoreFoundation 0x2380c2e9 _CFRunLoopGet2b + 2926
45 CoreFoundation 0x2375a621 CFRunLoopRunSpecific + 474
46 CoreFoundation 0x2375a433 CFRunLoopRunInMode + 104
47 GraphicsServices 0x2ab080a9 GSEventRunModal + 134
48 UIKit 0x26d44809 UIApplicationMain + 1438
49 Pogoplug 0x0012c4bf main (main.m:11)
50 libdyld.dylib 0x31475aaf _tlv_atexit + 8
Any clues to what can be wrong will be much appreciated. Here the line 216
MenuViewController *menuVC = [[MenuViewController alloc] initWithNibName:nil bundle:nil];
NavControllerPortrait *navController = [[NavControllerPortrait alloc] initWithRootViewController:menuVC];
Getting it mostly on iPhone 5 and iPad 3rd gen (not sure its limited to those devices).
More info Another crash that happens bit less frequently has similar stack trace and cause by this code:
CELoginViewController *loginVC = [[CELoginViewController alloc] initWithNibName:nil bundle:nil];
NavControllerPortrait *nav = [[NavControllerPortrait alloc] initWithRootViewController:loginVC];
So i strongly suspect or my custom UINavigationController or Apple's changes to it. Given that I'm not the only one experiencing this crash - i tend more to blame Apple :-)
Thanks.
I don't have enough reputation to comment and ask for details, however I am experiencing the same issue, mostly on iPhone 5 but also 5c, 4s, iPad 3 and iPod 5G, and I believe that what I'm going to say will be helpful even if it doesn't answer the question.
First of all, this is the crash that happens when you try to draw something with OpenGL or resize or move a MKMapView in the background. It might not be obvious in your crash logs, but every single one of the crash reports I got was when the application started in the background. It seems like it's the same for you, considering the UIViewController is called InitialSlidingViewController. It was with "Significant Location Update" most of the time in my case, however it could be "Background Fetch" or "Visits" update or "Silent Remote Notification" in your case.
One thing I noticed in my app was that it was setting up the navigation bar when it crashed, more specifically trying to render an image, I have tinted images in my navigation bar. For you it's something else but something that requires OpenGL, maybe a motion effect like parallax, I see _UIAccessibilityReduceMotion in the stack trace?
Regardless of what you are, or I am, doing, the fact that it happens more on some devices and never on some devices means that it's most probably an iOS bug. I also see "CI::can_use_gpu()" in my stack trace, it crashes because it uses gpu while checking if it can use gpu.
So how do we prevent it from crashing?
You can try disabling the feature you are using, for me I'll replace the image with the correctly colored one, instead of using a tint color.
Or you can try loading another view controller, maybe just an empty view controller, when the app starts in the background, then when it comes foreground swap the view controller with the one you are using right now.
这篇关于iOS 8上的神秘崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!