A user of my app sent me a crash report. I have never seen one like this before. All of my app's symbols are replaced with three question marks (???)
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 ??? 0x10844eb40 ???
1 CoreFoundation 0x7ff80f155518 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 137
and the binary image as
0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
so I cannot find out where exactly the crash happened.
What can cause this kind of crash report and can I do anything with it?
Consider this:
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_MEMORY_ERROR at 0x000000010844eb40
and this:
Thread 0 crashed with X86 Thread State (64-bit):
…
rip: 0x000000010844eb40 …
(In Intel, RIP is the PC register.)
Your program has crashed to an unmapped memory exception and the crashing address is the PC. That is, the program has jumped to a bad address. That’s why you get this:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 ??? 0x10844eb40 ???
because there is no code mapped at that location.
Notably, let’s look at more of that backtrace:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 ??? 0x10844eb40 ???
1 CoreFoundation 0x7ff80f155518 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 137
2 CoreFoundation 0x7ff80f1b864e ___CFXRegistrationPost_block_invoke + 88
3 CoreFoundation 0x7ff80f1b85a2 _CFXRegistrationPost + 515
4 CoreFoundation 0x7ff80f134dd6 _CFXNotificationPost + 763
5 Foundation 0x7ff810e22752 -[NSNotificationCenter postNotificationName:object:userInfo:] + 82
6 AppKit 0x7ff8130ca2e1 __postVolumeNotification_block_invoke + 64
Frame 6 is AppKit posting a volume notification. Frames 5 through 1 are notification infrastructure. Frame 0 is your crash.
The most likely causes of this are:
- You’ve registered for a notification and then the underlying object has been deallocated.
- Something has corrupted memory.
If you’re using volume notifications then I recommend that you focus your efforts there. Also engage the standard memory debugging tools to see if you can make this more reproducible. And do this all while generating volume notifications, for example, mounting and unmounting volumes.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"