symbolicatecrash 找不到任何符号

Posted

技术标签:

【中文标题】symbolicatecrash 找不到任何符号【英文标题】:symbolicatecrash is unable to find any symbols 【发布时间】:2012-12-06 18:41:18 【问题描述】:

我正在运行 XCode 4.5.2,但在使 symbolicatecrash 正常工作时遇到问题。

请注意,这是针对不是在我的系统上生成且不在存档中的应用和 dsym。

到目前为止,我已经:

    导出 DEVELOPER_DIR=/Applications/Xcode.app sudo xcode-select sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources ./symbolicatecrash -v -o test.txt ~/Downloads/OnDeckCrash/OnDeck_2012-11-26-152754_Andys-phone.crash ~/Downloads/OnDeckCrash/OnDeck.app.dSYM

这并没有创建“test.txt”。 它似乎根本找不到任何符号。 它为每个模块报告类似的内容:

...........fetching symbol file for CoreFoundation--[undef] 
Searching []...-- NO MATCH
Searching in Spotlight for dsym with UUID of e30fc309df7b3c9f8ac57f0f6047d65f
Running mdfind "com_apple_xcode_dsym_uuids == E30FC309-DF7B-3C9F-8AC5-7F0F6047D65F"
@dsym_paths = (  )
@exec_names = (  )
Did not find executable for dsym
## Warning: Can't find any unstripped binary that matches version of /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation

请注意,应用程序包与 mSYM 包位于同一目录中。 我还尝试将 symbolicatecrash 添加到我的路径中,并从 .dSYM 和 .app 所在的目录执行。这没什么区别。

关于如何让它工作的任何建议?

【问题讨论】:

【参考方案1】:

我今天也遇到了同样的问题。在我的情况下,mdfind 无法搜索 Archives (/Users/xxx/Library/Developer/Xcode/Archives/) 文件夹。所以我所做的是转到系统偏好设置-> 聚光灯-> 隐私,添加然后删除档案文件夹。重启 Xcode 或重新符号化

mdfind 在 symbolicatecrash 中用于查找相对于带有 uuid 的崩溃文件的 dsym 在你的情况下

mdfind "com_apple_xcode_dsym_uuids == E30FC309-DF7B-3C9F-8AC5-7F0F6047D65F"

你也可以运行

mdfind "com_apple_xcode_dsym_uuids == *"

列出 mdfind 知道的所有 dsym 位置。这会让你知道你的 dsym 是否在列表中

也为您的 dsym 运行此命令以获取您的应用程序的 uuid

dwarfdump --uuid xxx.app.dSYM/| tr '[:upper:]' '[:lower:]' | tr -d '-'

【讨论】:

【参考方案2】:

此问题与How can I tell Spotlight to index my .dSYM bundles?有关

我试图在我的 ~/Library 中强制导入 dSYM,但没有成功,所以答案是:

FINAL SOLUTION

Configure Xcode so that the archive folder is located outside of ~/Library.

【讨论】:

【参考方案3】:

如果您从未将崩溃的设备连接到您的计算机,则说明您没有此设备的符号文件。这就是 symbolicatecrash 找不到系统库的 dsym 文件的原因。

只需将您的设备连接到计算机并等待 xcode 下载符号文件。

【讨论】:

【参考方案4】:

在第 4 行,最后一个参数应该是包含 .app 和 .dSYM 的目录。至少当我从命令行运行symbolicatecrash 脚本时,我就是这样做的。

【讨论】:

嗯,这有点帮助。对于大多数符号,它仍然“找不到任何未剥离的二进制文件......”,但现在它得到“/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo:无法确定我的 dSYM 和应用程序文件的架构类型:...”。

以上是关于symbolicatecrash 找不到任何符号的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.5 - 崩溃日志未符号化

NASM 和 GDB 符号:“在符号文件中找不到任何代码段。”

找不到符号“$”

JNA beep() 找不到符号?

找不到符号类RTCClientVideoTracksCallback

当我在此页面中声明方法时,为啥此代码会出现“找不到符号”错误?