9

我刚刚将我的 xcode 升级到 4.5 版,我尝试了三种方式来表示崩溃日志,但都没有成功。

首先,我从我的设备中获取了崩溃日志,然后将其导入到 Organizer 的“设备日志”中,但我的应用程序的确切功能无法显示,内存地址仍然显示在结果中。

其次,我将'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',结果还是显示内存地址。

最后,我尝试了http://xperienced.com.pl/blog/symbolicate-ios-crash-report中的方法,但仍然没有运气。

你能帮我解决这个问题吗?

提前致谢!

4

5 回答 5

9

我根据https://github.com/TheRealKerni/QuincyKit/issues/46中的讨论解决了它。并从https://github.com/TheRealKerni/QuincyKit/blob/3c4a0b163ac71599a7795508fe6a91c1ced9daa6/server/local/symbolicatecrash.pl运行 perl 脚本以获得正确的结果。

@Kerni,谢谢你的剧本!

于 2012-09-24T05:12:10.533 回答
2

如果您的应用名称中有国际字符(例如“ø”、“ô”、“ç”),则符号化将失败。符号化过程中的各个步骤会弄乱这些字符,从而导致无效的符号化路径。

于 2012-12-21T10:58:20.740 回答
2

你关了聚光灯吗?symbolicatecrash 使用 Spotlight 来查找二进制文件和 dsym 文件,因此如果您关闭了 Spotlight,它将无法找到它们。无论如何,这里是将十六进制堆栈跟踪地址转换为行号的方法:

[1] 到 XCode->Organizer 找到 .dSym 文件,点击档案,然后右键点击档案,然后 cd 进入这个目录(你可以把文件夹拖到一个 shell 窗口中)。

[2] cd 进入 dSYMs 目录。

[3] 运行 dwarfdump 命令将十六进制地址转换为代码中的行号:

dwarfdump --arch armv7 myApp.dSYM --lookup 0xaabbccdd | grep 'Line table'
于 2013-10-12T01:01:17.307 回答
1

我安装了 Xcode 4.5 和 4.4.1,删除 4.4.1 后,符号问题得到了修复。

于 2012-11-21T19:59:52.047 回答
1

如果您还没有尝试过,请将您的 Mac 升级到 OSX 10.8.2。我运行的OSX 10.7.5,升级后立即解决了我的符号化问题。

我已经尝试了几乎所有方法来让我的崩溃日志具有象征意义。我以前从来没有遇到过问题,但是自从我查看崩溃日志以来已经过去了几个月;在那段时间的某个时候,我升级到了 Xcode 4.5.2。在我看来,Xcode 4.5.2 symbolicatecrash perl 脚本的某些内容在运行 OSX 10.7.5 的 Mac 上无法正常工作。在 symbolicatecrash 中,它调用 atos 对地址进行符号化;它找不到匹配的符号,即使我知道我有正确的 xcarchive。无论如何,如果您能负担得起 20 美元,请购买 OSX 10.8.2,希望这对您有用。

于 2012-12-02T23:26:57.293 回答