Symbolicate crash log - Xcode 8 / macOS app
Asked Answered
X

2

12

I'm trying symbolicating a crash log that I received from an user by e-mail.

I used traditional symbolicatecrash command in Xcode.app, however symbolicatecrash command just failed and returns the following message.

$/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash MY_APP.crash MY_APP.app.dSYM > readable.crash
Unsupported crash log version: 12 at /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash line 614.

And as it says, the report version of the crash log I wanna symbolicate is 12.

Date/Time:             2016-10-15 15:40:42.625 +0900
OS Version:            Mac OS X 10.12 (16A323)
Report Version:        12

My app is a pure Cocoa app for macOS (formerly OS X, not for iOS) that was build with Xcode 8.0 on macOS Sierra, distributed on the Mac App Store and written in Swift.

Meanwhile, Xcode 8.0's organizer successfully symbolicates crash log of the same app version that were received via MAS. So I suppose, the dSYM file is at least correct. But something is going wrong.

Does anyone know how I can symbolicate plain-text crash log its report version is 12?

Xanthochroid answered 15/10, 2016 at 7:20 Comment(0)
X
11

Finally, I found how to symbolicate my crashlog for macOS app!

I've followed the instruction in the gist below and obtained human-readable lines.

How to symbolize OSX crash logs -gist

Thus, briefly speaking, for instance for this line:

0   com.MY_DOMAIN.MY_APP        0x000000010febce85 0x10fdc1000 + 1031813

run the following line in Terminal:

atos -o MY_APP.app/Contents/MacOS/MY_APP -arch x86_64 -l 0x10fdc1000 0x000000010febce85

then you'll get the readable line:

Document.init() -> Document (in MY_APP) (DefaultKey.swift:85)
Xanthochroid answered 16/10, 2016 at 12:39 Comment(1)
sorry, your explanation looks simple in theory, but look at this crash log. Where do I find the addresses you mention in that mess? Thanks for any help.Lincolnlincolnshire
H
5

Use this command to symbolicate the whole file. Replace MyApp and MyCrashFile with the appropriate values and the memory address (0x102e27000) so the following line:

Thread 0 Crashed: 0 com.bundle.identifier 0x0000000102f0bfb5 0x102e27000 + 937909

becomes:

xcrun atos -o MyApp.app/Contents/MacOS/MyApp -arch x86_64 -l 0x102e27000 -f MyCrashFile.crash > c.sym.txt && open c.sym.txt

Tested on Mojave with Xcode 10.3

Hamitic answered 6/8, 2019 at 21:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.