Atos 无法从归档应用程序的 dSYM 中获取符号 [英] Atos cannot get symbols from dSYM of archived application
问题描述
我有一份来自 BugSense 的崩溃报告,所以我有关于崩溃的内存位置的信息,但它们是不是象征性的.此外,Bug Sense 不会发送传统的崩溃报告,但仍然给我一个 bugtrace.所以我正在尝试使用 Atos 来获取我崩溃的确切位置.我已经在 XCode 4 中存档了应用程序并使用该版本提交到应用程序商店,所以我有一个 dSYM 文件.我已经运行了以下代码:
I have a crash report from BugSense, so I have information on the memory location of crashes but they are not symbolicated. Also Bug Sense does not send traditional crash reports but still gives me a bugtrace. So I am trying to use Atos to get the exact location of my crashes. I have archived the app in XCode 4 and used that version to submit to the app store, so I have a dSYM file. I have run the following code:
atos -arch armv7 -o MyApp.app.dSYM 0x001057e9
但是,我没有得到正确的输出,而是收到一个错误:
However, instead of getting the proper output, I am receiving an error:
atos cannot load symbols for the file MyApp.app.dSYM for architecture armv7
关于为什么会发生这种情况的任何建议?我没有从应用程序中删除调试符号.
Any suggestions as to why this might be happening? I am not stripping debug symbols from the app.
推荐答案
要从归档应用的 dSYM 文件中正确获取符号并从 BugSense 崩溃报告(或任何其他与此相关的崩溃报告)中获取有用信息:
To properly get symbols from your archived app's dSYM file and get useful information from your BugSense crash reports (or any other crash reports for that matter):
- 将堆栈跟踪从 BugSense 复制到 TextEdit 或任何其他文本编辑器.确保使用剪贴板"图标,而不是简单地复制文本.否则,您将无法获得堆栈跟踪的实际内存位置,这是使用
atos
查找引用并符号化堆栈跟踪所必需的. - 打开 XCode 并转到 Organizer
- 找到您的存档并右键单击它,然后在查找器中打开它.
- 导航到存档的目录,通常是
~/Library/Developer/XCode/Archives/YYYY-MM-DD/
- 进入特定存档,然后进入
dSYMs
文件夹 - 您将看到文件
MyApp.app.dSYM
并且您可能会想,这是我应该运行atos
的文件!这是不正确的.它实际上是另一个包!cd
进入这个包,进入文件夹:MyApp.app.dSYM/Contents/Resources/DWARF
你会找到另一个名为MyApp
的文件.这是实际的 dSYM 文件. - 运行
atos -arch armv7 -o MyApp 0x0000000
(或任何内存地址)来查找错误的位置,或者干脆atos -arch armv7 -o MyApp
进入交互模式.
- Copy the stack trace from BugSense into TextEdit or any other text editor. Make sure to use the "clipboard" icon, rather than simply copying the text. Otherwise you will not get the actual memory locations of the stack trace, which are necessary to look up the references using
atos
and symbolicate your stack trace. - Open XCode and go to the Organizer
- Find your archive and right-click it, go to open it in the finder.
- Navigate to the directory of the archive, usually
~/Library/Developer/XCode/Archives/YYYY-MM-DD/
- Go into the specific archive, and then the
dSYMs
folder - You will see the file
MyApp.app.dSYM
and you may think, this is the file that I should runatos
against! This is incorrect. It is actually another package!cd
into this package, into the folder:MyApp.app.dSYM/Contents/Resources/DWARF
and you will find another file simply calledMyApp
. This is the actual dSYM file. - Run
atos -arch armv7 -o MyApp 0x0000000
(or whatever the memory address is) to find the location of your error, or simplyatos -arch armv7 -o MyApp
to enter interactive mode.
这篇关于Atos 无法从归档应用程序的 dSYM 中获取符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!