CA::Render::Encoder::grow 是否因 iOS 13 中的错误而崩溃,或者如何修复它们?

问题描述 投票:0回答:1

(我在 StackOverflow 上发现了其他一些与 QuartzCore 崩溃相关的问题,但没有一个是针对我们所拥有的确切上下文的。)

我们在 App Store 中有一个 iOS 应用程序。最近,我们在该应用程序的管理器/崩溃中看到一种新型崩溃,似乎与 iOS 13 设备有关(过去几周有 21 台设备受到影响,全部运行 iOS 13.1、.2 或 .3)。 Xcode 报告崩溃发生在 QuartzCore 的 CA::Render::Encoder::grow(unsigned long) 上。

知道它是什么以及如何修复它吗?它看起来与我们的代码无关。这可能是苹果最近的一个错误吗? (在 iOS 13 之前我们没有这些崩溃报告。)提前谢谢您。

以下是崩溃日志的摘录:

OS Version:          iPhone OS 13.3 (17C54)
Release Type:        User
Baseband Version:    2.03.07
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0

Thread 0 name:
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x00000001b431aefc __pthread_kill + 8
1   libsystem_pthread.dylib         0x00000001b423a8b8 pthread_kill + 228 (pthread.c:1458)
2   libsystem_c.dylib               0x00000001b41caa74 abort + 104 (abort.c:110)
3   QuartzCore                      0x00000001bb0fc3b0 CA::Render::Encoder::grow(unsigned long) + 308 (render-coding.cpp:562)
4   QuartzCore                      0x00000001bb0fcb20 CA::Render::Encoder::encode_data_async(void const*, unsigned long, void (*)(void const*, void*), ... + 180 (render-coding.h:272)
5   QuartzCore                      0x00000001bafb2f78 CA::Render::Image::encode(CA::Render::Encoder*) const + 740 (render-image.cpp:401)
6   QuartzCore                      0x00000001bb0fc438 CA::Render::Encoder::encode_object_uncached(CA::Render::Object const*) + 136 (render-coding.cpp:905)
7   QuartzCore                      0x00000001bafcf9d4 CA::Render::Layer::encode(CA::Render::Encoder*) const + 116 (render-coding.h:388)
8   QuartzCore                      0x00000001bb0fc438 CA::Render::Encoder::encode_object_uncached(CA::Render::Object const*) + 136 (render-coding.cpp:905)
9   QuartzCore                      0x00000001bb100ebc CA::Render::encode_set_object(CA::Render::Encoder*, unsigned long, unsigned int, CA::Render::Obje... + 196 (render-coding.cpp:2151)
10  QuartzCore                      0x00000001bb04094c invocation function for block in CA::Context::commit_transaction(CA::Transaction*, double) + 1080 (CAContextInternal.mm:1632)
11  QuartzCore                      0x00000001bb0fae1c CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 348 (CALayer.mm:2647)
12  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
13  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
14  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
15  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
16  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
17  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
18  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
19  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
20  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
21  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
22  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
23  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
24  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
25  QuartzCore                      0x00000001bb0fad98 CA::Layer::commit_if_needed(CA::Transaction*, void (CA::Layer*, unsigned int, unsigned int) block... + 216 (CALayer.mm:2633)
26  QuartzCore                      0x00000001bb03fbc4 CA::Context::commit_transaction(CA::Transaction*, double) + 2868 (CAContextInternal.mm:2288)
27  QuartzCore                      0x00000001bb069fd0 CA::Transaction::commit() + 684 (CATransactionInternal.mm:438)
28  UIKitCore                       0x00000001b8648d60 _afterCACommitHandler + 144 (UIApplication.m:3076)
29  CoreFoundation                  0x00000001b44ab524 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 36 (CFRunLoop.c:1758)
30  CoreFoundation                  0x00000001b44a61c4 __CFRunLoopDoObservers + 420 (CFRunLoop.c:1868)
31  CoreFoundation                  0x00000001b44a6774 __CFRunLoopRun + 1292 (CFRunLoop.c:2910)
32  CoreFoundation                  0x00000001b44a5f40 CFRunLoopRunSpecific + 480 (CFRunLoop.c:3192)
33  GraphicsServices                0x00000001be723534 GSEventRunModal + 108 (GSEvent.c:2246)
34  UIKitCore                       0x00000001b861ea60 UIApplicationMain + 1940 (UIApplication.m:4773)
35  <Our app name>                  0x00000001029ed048 main + 88 (main.m:14)
36  libdyld.dylib                   0x00000001b4324e18 start + 4
ios cocoa-touch crash
1个回答
0
投票

我的应用程序也遇到了同样的崩溃。大约 710 台设备击中了它,但我无法离线复制它。堆栈是这样的:

0 libsystem_kernel.dylib ___pthread_kill + 8
1 libsystem_pthread.dylib _pthread_kill + 208
2 libsystem_c.dylib _abort + 124
3 QuartzCore CA::Render::Encoder::grow(unsigned long) + 236
4 QuartzCore CA::Render::Layer::encode(CA::Render::Encoder*) const + 60
5 QuartzCore CA::Render::encode_set_object(CA::Render::Encoder*, unsigned long, unsigned int, CA::Render::Object*, unsigned int) + 192
6 QuartzCore ___ZN2CA7Context18commit_transactionEPNS_11TransactionEdPd_block_invoke + 272
7 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 384
8 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
9 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
10 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
11 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
12 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
13 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
14 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
15 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
16 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
17 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
18 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
19 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
20 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
21 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
22 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
23 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
24 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
25 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
26 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
27 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
28 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
29 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
30 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
31 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
32 QuartzCore CA::Layer::commit_if_needed(CA::Transaction*, void ( block_pointer)(CA::Layer*, unsigned int, unsigned int)) + 264
33 QuartzCore CA::Context::commit_transaction(CA::Transaction*, double, double*) + 6284
34 QuartzCore CA::Transaction::commit() + 652
35 QuartzCore CA::Transaction::flush_as_runloop_observer(bool) + 84
36 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
37 CoreFoundation ___CFRunLoopDoObservers + 552
38 CoreFoundation ___CFRunLoopRun + 1020
39 CoreFoundation _CFRunLoopRunSpecific + 584
40 GraphicsServices _GSEventRunModal + 160
41 UIKitCore -[UIApplication _run] + 868
42 UIKitCore _UIApplicationMain + 312
43 MyOnlineApp main (main.m:17)
44 dyld 0x00000001bb75e000 + 81392

我到处搜索并阅读了类似崩溃的帖子、Apple API 文档,但仍然没有任何线索。

有人可以分享一些有关调试或修复此类问题的技巧吗?预先感谢!

© www.soinside.com 2019 - 2024. All rights reserved.