每当有人试图编辑记录时(例如,当我显示EditRecordView控制器时),我的一个应用程序就会冻结.我try 使用Watchdog来检测挂起的主线程并导致崩溃,以获取Firebase Crashlytics报告,并追踪我导致主线程锁定的位置.
可悲的是,当我拿到看门狗的Firebase崩溃报告时,实际上每个线程都在Apple代码中运行,而不是我的代码.我看不到任何会导致我冻结/死锁的东西.
主线程似乎正在执行一些UICollectionView代码,但不是I don't even have a UICollectionView in my app.我已经整理了我的整个代码库,只是为了确保.
你知道这可能在哪里或者发生了什么吗?
我的编辑屏幕由一个UINavigationController
组成,它的根视图控制器是UIViewController
.UIViewController
嵌入了UITableViewController
.
以下是它显示的内容:
com.apple.main-thread
0 libobjc.A.dylib 0xa6d0 objc_alloc_init + 36
1 UIKitCore 0x14e7f8 +[UICollectionViewLayoutAttributes layoutAttributesForCellWithIndexPath:] + 24
2 UIKitCore 0x14e0a0 -[_UICollectionCompositionalLayoutSolver _createAndCacheLayoutAttributesForItemAtIndexPath:frame:zIndex:] + 152
3 UIKitCore 0x13a04 __85-[_UICollectionCompositionalLayoutSolver _layoutAttributesForElementsInRect:handler:]_block_invoke + 944
4 UIKitCore 0x6b799c __85-[_UICollectionCompositionalLayoutSolver _layoutAttributesForElementsInRect:handler:]_block_invoke_2 + 40
5 UIKitCore 0x484278 _UIRTreeContainerNode::enumerateIndexesIntersecting(CGRect const&, bool*, void (unsigned long, bool*) block_pointer) const + 160
6 UIKitCore 0x4842b4 _UIRTreeContainerNode::enumerateIndexesIntersecting(CGRect const&, bool*, void (unsigned long, bool*) block_pointer) const + 220
7 UIKitCore 0x40adb0 -[_UIRTree enumerateIndexesForFramesIntersectingFrame:withBlock:] + 52
8 UIKitCore 0x11b14 -[_UICollectionCompositionalLayoutSolver _layoutAttributesForElementsInRect:handler:] + 1092
9 UIKitCore 0x4483a4 -[_UICollectionCompositionalLayoutSolver layoutAttributesForElementsInRect:] + 172
10 UIKitCore 0x1321c -[UICollectionViewCompositionalLayout layoutAttributesForElementsInRect:] + 112
11 UIKitCore 0x12840 __45-[UICollectionViewData validateLayoutInRect:]_block_invoke + 136
12 UIKitCore 0x43ce3c -[UICollectionViewData validateLayoutInRect:] + 1252
13 UIKitCore 0x2878c -[UICollectionView layoutSubviews] + 220
14 UIKitCore 0x4420 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1992
15 QuartzCore 0x9f30 CA::Layer::layout_if_needed(CA::Transaction*) + 500
16 QuartzCore 0x1d4ac CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 148
17 QuartzCore 0x2e8d8 CA::Context::commit_transaction(CA::Transaction*, double, double*) + 444
18 QuartzCore 0x5de80 CA::Transaction::commit() + 648
19 UIKitCore 0x4fd4f0 _UIApplicationFlushCATransaction + 84
20 UIKitCore 0x64dd94 _UIUpdateSequenceRun + 84
21 UIKitCore 0xcb2894 schedulerStepScheduledMainSection + 144
22 UIKitCore 0xcb1df0 runloopSourceCallback + 92
23 CoreFoundation 0xd3128 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
24 CoreFoundation 0xdf7b4 __CFRunLoopDoSource0 + 176
25 CoreFoundation 0x645e8 __CFRunLoopDoSources0 + 244
26 CoreFoundation 0x7a0d4 __CFRunLoopRun + 828
27 CoreFoundation 0x7f3ec CFRunLoopRunSpecific + 612
28 GraphicsServices 0x135c GSEventRunModal + 164
29 UIKitCore 0x39cf58 -[UIApplication _run] + 888
30 UIKitCore 0x39cbbc UIApplicationMain + 340
31 HerdBoss 0xced0 main + 16 (main.m:16)
32 ??? 0x1dd1b0dec (Missing)
以下是其他帖子,供参考:
Fatal error: ? Main thread was blocked for 2.00s ?
Crashed: WatchDog
0 libswiftCore.dylib 0x373e4 _assertionFailure(_:_:file:line:flags:) + 264
1 Watchdog 0x8328 $s8WatchdogAAC9threshold10strictModeABSd_SbtcfcyycfU_TA + 204
2 Watchdog 0x8348 $sIeg_IeyB_TR + 28
3 Watchdog 0x8c1c $s8Watchdog10PingThread33_F0B684E1C455B9DE2999D4562E567E94LLC4mainyyF + 816
4 Watchdog 0x8c3c $s8Watchdog10PingThread33_F0B684E1C455B9DE2999D4562E567E94LLC4mainyyFTo + 28
5 Foundation 0x5b524 __NSThread__start__ + 716
6 libsystem_pthread.dylib 0x16b8 _pthread_start + 148
7 libsystem_pthread.dylib 0xb88 thread_start + 8
com.apple.uikit.eventfetch-thread
0 libsystem_kernel.dylib 0xca4 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x13b74 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x13e4c mach_msg_overwrite + 540
3 libsystem_kernel.dylib 0x11e8 mach_msg + 24
4 CoreFoundation 0x79024 __CFRunLoopServiceMachPort + 160
5 CoreFoundation 0x7a250 __CFRunLoopRun + 1208
6 CoreFoundation 0x7f3ec CFRunLoopRunSpecific + 612
7 Foundation 0x41fb4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
8 Foundation 0x41e9c -[NSRunLoop(NSRunLoop) runUntilDate:] + 64
9 UIKitCore 0x4cfcc8 -[UIEventFetcher threadMain] + 416
10 Foundation 0x5b524 __NSThread__start__ + 716
11 libsystem_pthread.dylib 0x16b8 _pthread_start + 148
12 libsystem_pthread.dylib 0xb88 thread_start + 8
com.google.firebase.crashlytics.MachExceptionServer
0 HerdBoss 0x1f5b8c FIRCLSProcessRecordAllThreads + 393 (FIRCLSProcess.c:393)
1 HerdBoss 0x1f5f6c FIRCLSProcessRecordAllThreads + 424 (FIRCLSProcess.c:424)
2 HerdBoss 0x1ed440 FIRCLSHandler + 34 (FIRCLSHandler.m:34)
3 HerdBoss 0x1efc18 FIRCLSMachExceptionServer + 521 (FIRCLSMachException.c:521)
4 libsystem_pthread.dylib 0x16b8 _pthread_start + 148
5 libsystem_pthread.dylib 0xb88 thread_start + 8
com.apple.NSURLConnectionLoader
0 libsystem_kernel.dylib 0xca4 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x13b74 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x13e4c mach_msg_overwrite + 540
3 libsystem_kernel.dylib 0x11e8 mach_msg + 24
4 CoreFoundation 0x79024 __CFRunLoopServiceMachPort + 160
5 CoreFoundation 0x7a250 __CFRunLoopRun + 1208
6 CoreFoundation 0x7f3ec CFRunLoopRunSpecific + 612
7 CFNetwork 0x2586f0 _CFURLStorageSessionDisableCache + 60900
8 Foundation 0x5b524 __NSThread__start__ + 716
9 libsystem_pthread.dylib 0x16b8 _pthread_start + 148
10 libsystem_pthread.dylib 0xb88 thread_start + 8
Thread #1
0 libsystem_kernel.dylib 0x11ac __workq_kernreturn + 8
1 libsystem_pthread.dylib 0xe28 _pthread_wqthread + 364
2 libsystem_pthread.dylib 0xb7c start_wqthread + 8
Thread #2
0 libsystem_kernel.dylib 0x11ac __workq_kernreturn + 8
1 libsystem_pthread.dylib 0xe28 _pthread_wqthread + 364
2 libsystem_pthread.dylib 0xb7c start_wqthread + 8
Thread #3
0 libsystem_kernel.dylib 0x11ac __workq_kernreturn + 8
1 libsystem_pthread.dylib 0xe28 _pthread_wqthread + 364
2 libsystem_pthread.dylib 0xb7c start_wqthread + 8
Thread #4
0 libsystem_kernel.dylib 0x11ac __workq_kernreturn + 8
1 libsystem_pthread.dylib 0xe28 _pthread_wqthread + 364
2 libsystem_pthread.dylib 0xb7c start_wqthread + 8
Thread #5
0 libsystem_kernel.dylib 0x11ac __workq_kernreturn + 8
1 libsystem_pthread.dylib 0xe28 _pthread_wqthread + 364
2 libsystem_pthread.dylib 0xb7c start_wqthread + 8
Thread #6
0 libsystem_kernel.dylib 0x11ac __workq_kernreturn + 8
1 libsystem_pthread.dylib 0xe28 _pthread_wqthread + 364
2 libsystem_pthread.dylib 0xb7c start_wqthread + 8