我正在尝试调试我不知道原因的崩溃。不幸的是,我所拥有的只是我从Crashlytics中检索到的堆栈跟踪,并且几乎没有证据表明我的应用程序会导致这种情况发生,所以很遗憾我无法提供任何具体的代码示例,我在这里张贴纯粹的希望有人之前遇到过这种情况。
我在通过Crashlytics收集的所有相关崩溃堆栈跟踪中看到它在标题为“com.apple.avkit.seekQueue”的主题上崩溃。输出如下:
Crashed: com.apple.avkit.seekQueue
0 libobjc.A.dylib 0x18c3e17f4 objc_object::release() + 8
1 libsystem_blocks.dylib 0x18c86fa68 _Block_release + 160
2 libdispatch.dylib 0x18c81a9a0 _dispatch_client_callout + 16
3 libdispatch.dylib 0x18c828ad4 _dispatch_queue_serial_drain + 928
4 libdispatch.dylib 0x18c81e2cc _dispatch_queue_invoke + 884
5 libdispatch.dylib 0x18c828fa8 _dispatch_queue_override_invoke + 344
6 libdispatch.dylib 0x18c82aa50 _dispatch_root_queue_drain + 540
7 libdispatch.dylib 0x18c82a7d0 _dispatch_worker_thread3 + 124
8 libsystem_pthread.dylib 0x18ca23100 _pthread_wqthread + 1096
9 libsystem_pthread.dylib 0x18ca22cac start_wqthread + 4
我感谢Crashlytics的例外是EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000020。从这里我只能假设有一个AVPlayer对解除分配或受限制的内存地址做了一些事情,但是堆栈跟踪没有向主要线程中的main.m以外的应用程序显示任何其他入口点。
FWIW,Crashlytics还建议如下:
堆栈跟踪表明堆损坏可能导致您的错误 应用程序崩溃。从释放a中很容易发生内存损坏 悬空指针,线程竞赛或坏指针算术。该 要记住的重要一点是,可能会发生崩溃 在最初的腐败之后很久。结果,堆栈跟踪为 这次崩溃可能无法提供任何有关该bug位置的线索 你的代码。
说了这么多,是否有人对可能导致这种情况的原因有什么了解,我如何调试它,或者甚至可能是AVKit的问题?