Emre Önder
Emre Önder

Reputation: 2537

CFRunLoop Is Calling Out To A Source0 Perform Function Crash

App sometimes get crashed sometimes which I can't reproduce the case. I'm trying to examine the logs and find the which code block causes the crash. Below is my main threat which is crashed. I think that CFRunLoop Is Calling Out To A Source0 Perform Function line (line 23) causes the crash but I'm not sure. How can I find the related function?

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x0000000185fa416c mach_msg_trap + 8
1   libsystem_kernel.dylib          0x0000000185fa3fdc mach_msg + 72
2   CoreFoundation                  0x0000000186fa1cec __CFRunLoopServiceMachPort + 192
3   CoreFoundation                  0x0000000186f9f908 __CFRunLoopRun + 1132
4   CoreFoundation                  0x0000000186ece048 CFRunLoopRunSpecific + 444
5   Foundation                      0x00000001879dcb1c -[NSRunLoop+ 51996 (NSRunLoop) runMode:beforeDate:] + 304
6   MyAppTargetName                 0x0000000100c05464 0x100084000 + 12063844
7   MyAppTargetName                 0x0000000100b70408 0x100084000 + 11453448
8   MyAppTargetName                 0x0000000100b7ef64 0x100084000 + 11513700
9   MyAppTargetName                 0x000000010076b6e4 0x100084000 + 7239396
10  MyAppTargetName                 0x000000010076aec0 0x100084000 + 7237312
11  MyAppTargetName                 0x000000010076b11c 0x100084000 + 7237916
12  MyAppTargetName                 0x0000000100569c28 0x100084000 + 5135400
13  UIKit                           0x000000018d09e7ac -[UIApplication _sendWillEnterForegroundCallbacks] + 172
14  UIKit                           0x000000018d0d9ccc -[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:] + 2140
15  UIKit                           0x000000018d0d91fc -[UIApplication _handleApplicationLifecycleEventWithScene:transitionContext:completion:] + 452
16  UIKit                           0x000000018d0c48f8 __70-[UIApplication scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke + 152
17  UIKit                           0x000000018d0c457c -[UIApplication scene:didUpdateWithDiff:transitionContext:completion:] + 888
18  UIKit                           0x000000018d3f5e44 -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] + 464
19  FrontBoardServices              0x0000000188b67b8c __80-[FBSSceneImpl updater:didUpdateSettings:withDiff:transitionContext:completion:]_block_invoke.376 + 208
20  FrontBoardServices              0x0000000188b958bc __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36
21  FrontBoardServices              0x0000000188b95728 -[FBSSerialQueue _performNext] + 176
22  FrontBoardServices              0x0000000188b95ad0 -[FBSSerialQueue _performNextFromRunLoopSource] + 56
23  CoreFoundation                  0x0000000186fa2278 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
24  CoreFoundation                  0x0000000186fa1bc0 __CFRunLoopDoSources0 + 524
25  CoreFoundation                  0x0000000186f9f7c0 __CFRunLoopRun + 804
26  CoreFoundation                  0x0000000186ece048 CFRunLoopRunSpecific + 444
27  GraphicsServices                0x0000000188951198 GSEventRunModal + 180
28  UIKit                           0x000000018cea8628 -[UIApplication _run] + 684
29  UIKit                           0x000000018cea3360 UIApplicationMain + 208
30  MyAppTargetName                 0x0000000100523e68 0x100084000 + 4849256
31  libdyld.dylib                   0x0000000185eb05b8 start + 4

Upvotes: 4

Views: 2055

Answers (1)

Rob Napier
Rob Napier

Reputation: 299345

__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ just means "ultimately the runloop called this." That's pretty much means "your app is running." It is not part of the error.

The error is in this section, which you will need to symbolicate:

6   MyAppTargetName                 0x0000000100c05464 0x100084000 + 12063844
7   MyAppTargetName                 0x0000000100b70408 0x100084000 + 11453448
8   MyAppTargetName                 0x0000000100b7ef64 0x100084000 + 11513700
9   MyAppTargetName                 0x000000010076b6e4 0x100084000 + 7239396
10  MyAppTargetName                 0x000000010076aec0 0x100084000 + 7237312
11  MyAppTargetName                 0x000000010076b11c 0x100084000 + 7237916
12  MyAppTargetName                 0x0000000100569c28 0x100084000 + 5135400

I'm suspicious about this frame immediately coming out of your code, however:

5   Foundation                      0x00000001879dcb1c -[NSRunLoop+ 51996 (NSRunLoop) runMode:beforeDate:] + 304

That could mean that your code is trying to process the runloop directly, which is technically legal, but is a very advanced technique that can create significant problem. But you'll need to look at your own code after symbolication.

Upvotes: 1

Related Questions