符号崩溃在 xcode 4.5 上失败
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12550545/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Symbolicate crash failed on xcode 4.5
提问by mobguang
I just upgraded my xcode to version 4.5, I tried three ways for symbolicating crash log, but neither of them success.
我刚刚将我的 xcode 升级到 4.5 版,我尝试了三种符号化崩溃日志的方法,但都没有成功。
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.
其次,我将“symbolicatecrash”文件从“/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources”复制到“/usr/local” /bin'并将.DSYM文件、.app文件和.crash文件放入一个文件夹,运行命令:'symbolicatecrash Myapp.crash',结果还是显示内存地址。
Finally, I tried the method from http://xperienced.com.pl/blog/symbolicate-ios-crash-report, but still no lucky.
最后,我尝试了http://xperienced.com.pl/blog/symbolicate-ios-crash-report 中的方法,但仍然没有运气。
Could you please kindly help me with solve this question?
你能帮我解决这个问题吗?
Thanks in advance!
提前致谢!
采纳答案by mobguang
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.plto get the correct result.
我根据https://github.com/TheRealKerni/QuincyKit/issues/46 中的讨论解决了它。并从https://github.com/TheRealKerni/QuincyKit/blob/3c4a0b163ac71599a7795508fe6a91c1ced9daa6/server/local/symbolicatecrash.pl运行 perl 脚本以获得正确的结果。
@Kerni, thank you for your script!
@Kerni,感谢您的脚本!
回答by Kim André Sand
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.
如果您的应用程序名称中有国际字符(例如“?”、“?”、“?”),则符号化将失败。符号化过程中的各个步骤弄乱了这些字符,导致了无效的符号化路径。
回答by CpnCrunch
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:
你关了聚光灯吗?symbolicatecrash 使用聚光灯来查找二进制文件和 dsym 文件,因此如果您关闭了聚光灯,它将无法找到它们。无论如何,这是将十六进制堆栈跟踪地址转换为行号的方法:
[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).
[1] 通过转到 XCode->Organizer 找到 .dSym 文件,单击存档,然后右键单击存档,然后 cd 进入该目录(您可以将该文件夹拖到 shell 窗口中)。
[2] cd into the dSYMs directory.
[2] cd 进入 dSYMs 目录。
[3] run the dwarfdump command to translate the hex address into a line number in your code:
[3] 运行 dwarfdump 命令将十六进制地址转换为代码中的行号:
dwarfdump --arch armv7 myApp.dSYM --lookup 0xaabbccdd | grep 'Line table'
回答by Gato
I had Xcode 4.5 and 4.4.1 installed, after deleting 4.4.1 the symbolicating problem was fixed.
我安装了 Xcode 4.5 和 4.4.1,删除 4.4.1 后,符号问题得到解决。
回答by John Jacecko
If you haven't already tried this, upgrade your mac to OSX 10.8.2. I wasrunning OSX 10.7.5, and upgrading immediatelyfixed my sybolication woes.
如果您还没有尝试过,请将您的 Mac 升级到 OSX 10.8.2。我在运行OSX 10.7.5和升级马上修好了我sybolication困境。
I had tried pretty much everythingto 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 factthat 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.
我已经尝试了几乎所有方法来让我的崩溃日志具有象征意义。我以前从未遇到过问题,但自从我查看崩溃日志以来已经过去了几个月;在那段时间的某个时候,我升级到了 Xcode 4.5.2。在我看来,Xcode 4.5.2 符号崩溃 perl 脚本在运行 OSX 10.7.5 的 Mac 上无法正常工作。在symbolicatecrash 中,它调用atos 来对地址进行符号化;它找不到匹配的符号,即使我知道我有正确的 xcarchive。无论如何,如果你能负担得起 20 美元的 OSX 10.8.2 春天,希望这对你有用。