Xcode 11 Displays Crash Logs in Context of Your Projects
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!
See also:
- “TN2151: Understanding and Analyzing Application Crash Reports”, for a manual approach to crash symbolication