问题
I just upgraded my xcode to version 4.5, I tried three ways for symbolicating crash log, but neither of them success.
Firstly, I got the crash log from my device and then imported it into "Device Logs" of Organizer, but the exact function of my app cannot be displayed, the memory address still displayed in result.
Secondly, I copied the 'symbolicatecrash' file from '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources' to '/usr/local/bin' and put the .DSYM file, .app file and .crash file into a folder, run the command: 'symbolicatecrash Myapp.crash', the result still display memory address.
Finally, I tried the method from http://xperienced.com.pl/blog/symbolicate-ios-crash-report, but still no lucky.
Could you please kindly help me with solve this question?
Thanks in advance!
回答1:
I solved it according to the discussion in https://github.com/TheRealKerni/QuincyKit/issues/46. And run the perl script from https://github.com/TheRealKerni/QuincyKit/blob/3c4a0b163ac71599a7795508fe6a91c1ced9daa6/server/local/symbolicatecrash.pl to get the correct result.
@Kerni, thank you for your script!
回答2:
If you have international characters in your app name (e.g. "ø", "ô", "ç") then symbolication will fail. The various steps during symbolication mess up these characters resulting in an invalid symbolication path.
回答3:
Have you turned off spotlight? symbolicatecrash uses spotlight to find the binaries and dsym files, so if you've turned off spotlight then it won't be able to find them. Anyway, here is how to convert a hex stacktrace address into a line number:
[1] Find the .dSym file by going to XCode->Organizer, clicking on archives, then right click on the archive, and cd into this directory (you can just drag the folder into a shell window).
[2] cd into the dSYMs directory.
[3] run the dwarfdump command to translate the hex address into a line number in your code:
dwarfdump --arch armv7 myApp.dSYM --lookup 0xaabbccdd | grep 'Line table'
回答4:
I had Xcode 4.5 and 4.4.1 installed, after deleting 4.4.1 the symbolicating problem was fixed.
回答5:
If you haven't already tried this, upgrade your mac to OSX 10.8.2. I was running OSX 10.7.5, and upgrading immediately fixed my sybolication woes.
I had tried pretty much everything to get my crash logs to symbolicate. I never had problems before, but a few months had passed since I'd looked at a crash log; at some point during that period I upgraded to Xcode 4.5.2. It seems to me that something with the Xcode 4.5.2 symbolicatecrash perl script does not work correctly on a mac running OSX 10.7.5. In symbolicatecrash, it calls atos to sybolicate an address; it couldn't find the matching symbols, even though I knew for a fact that I had the correct xcarchive. Anyhow, if you can afford the $20, spring for OSX 10.8.2 and hopefully that'll work for you.
来源:https://stackoverflow.com/questions/12550545/symbolicate-crash-failed-on-xcode-4-5