For all throughout human history, you had to symbolicate your user's crash logs using
atos or a 3rd party tool to get human-readable output. Otherwise, you will not know the symbol or method name of your app's parts that are involved and see memory offsets instead.
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libobjc.A.dylib 0x00007fff68656e9d objc_msgSend + 29 1 com.apple.AppKit 0x00007fff3e925c4f -[NSView _removeNextPointersToMe] + 829 2 com.apple.AppKit 0x00007fff3e9258f5 -[NSView _removeFromKeyViewLoop] + 203 3 com.apple.AppKit 0x00007fff3f1da8aa -[NSView _finalize] + 830 4 com.apple.AppKit 0x00007fff3e92557a -[NSView dealloc] + 164 5 com.apple.AppKit 0x00007fff3ea2bc42 -[NSControl dealloc] + 148 6 com.apple.AppKit 0x00007fff3ea2bb9f -[NSTextField dealloc] + 124 7 libobjc.A.dylib 0x00007fff6865eff5 objc_object::rootRelease_underflow(bool) + 339 8 libobjc.A.dylib 0x00007fff686591f2 objc_release + 162 9 libobjc.A.dylib 0x00007fff6865a042 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 812 10 com.apple.CoreFoundation 0x00007fff41362896 _CFAutoreleasePoolPop + 22 11 com.apple.Foundation 0x00007fff434ad8ad -[NSAutoreleasePool drain] + 144 12 com.apple.AppKit 0x00007fff3e9278e5 -[NSApplication run] + 860 13 com.apple.AppKit 0x00007fff3e8f6a72 NSApplicationMain + 804 14 de.zettelkasten.TheArchive 0x000000010b007a79 0x10b003000 + 19065 15 libdyld.dylib 0x00007fff6927b015 start + 1
But with Xcode 11, double-clicking a
.crash file now opens Xcode instead of Console, and you can view the crash log in the context of a project. That's very nice.
Crash log entries are still not symbolicated – maybe this is different for iOS apps and/or TestFlight where Apple's servers can take care of re-symbolication? I'm not sure. But this is an interesting new direction that I like to see explored further.
Also, I cannot figure out how to "close" or detach the crash log again without closing the whole project, yet.
Update 2019-10-14: Vadim Shpakovski (@vadimshpakovski) mentioned on Twitter that you can "close" the crash files by hitting the delete key when you select the crash in the left sidebar. Delete! Of course!
- "TN2151: Understanding and Analyzing Application Crash Reports", for a manual approach to crash symbolication
Browse the blog archive