无法使用 symbolicatecrash 将地址转换为符号(XCode 4.0.2 - 目标设备 iPad)
Posted
技术标签:
【中文标题】无法使用 symbolicatecrash 将地址转换为符号(XCode 4.0.2 - 目标设备 iPad)【英文标题】:Unable to convert address to symbols with symbolicatecrash (XCode 4.0.2 - target device iPad) 【发布时间】:2011-08-13 23:12:33 【问题描述】:我阅读了许多博客和论坛,但无法找到我的问题的答案。所以我正在寻求你的帮助。
我使用的是 Xcode 4.2,我的应用目标设备是 iPad。以下是我测试 symbolicatecrash 工作原理的步骤:)
我运行产品/存档(发布模式)以获取 ipa 文件并将此文件安装在 iPad 上。还运行 build for Archiving 以获得 *.app 和 *.dSYM 包。在 iPad 上运行应用程序以获取崩溃文件。在这些步骤之后,我将所有 *.crash 和这两个包放在一个文件夹中。 symbolicatecrash 运行,但它没有将地址转换为符号:(,我仍然看到崩溃线程上的地址而不是函数名。
我做了以下配置 (http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html)
生成调试符号是的 使用 dSYM 调试信息格式 DWARF 文件部署后处理是 带状链接产品是使用 单独的条带是的 在复制期间去除调试符号 N如果我需要做任何其他事情来使它工作,请告诉我。 谢谢,
【问题讨论】:
您的问题标题引用了 Xcode 4.0.2,但您的问题文本引用了 Xcode 4.2。 【参考方案1】:您的计算机上是否安装了多个版本的 Xcode?我在 /Developer 中安装了最新版本,而在 /Developer_old 中仍安装了旧版本。当我使用 -v 标志运行 symbolicatecrash 时,我看到它正在 Developer_old 中寻找资源。
我在文本编辑器中打开了 symbolicatecrash 并修改了 getSymbolDirPaths 函数,在 chomp $foundPath 之后添加了这一行:
$foundPath =~ s/_old//; # don't use the old version we kept installed
当我再次运行 symbolicatecrash 时,它成功了!
只是一个猜测,但希望这会对某人有所帮助。
【讨论】:
以上是关于无法使用 symbolicatecrash 将地址转换为符号(XCode 4.0.2 - 目标设备 iPad)的主要内容,如果未能解决你的问题,请参考以下文章
强制 symbolicatecrash 使用特定的 .app 和 .dSYM 文件?
使用Symbolicatecrash符号化crash日志 · Ney的技术博客
iOS-symbolicatecrash符号化Crash文件