Atos 无法从归档应用程序的 dSYM 中获取符号 [英] Atos cannot get symbols from dSYM of archived application

查看:22
本文介绍了Atos 无法从归档应用程序的 dSYM 中获取符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一份来自 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):

  1. 将堆栈跟踪从 BugSense 复制到 TextEdit 或任何其他文本编辑器.确保使用剪贴板"图标,而不是简单地复制文本.否则,您将无法获得堆栈跟踪的实际内存位置,这是使用 atos 查找引用并符号化堆栈跟踪所必需的.
  2. 打开 XCode 并转到 Organizer
  3. 找到您的存档并右键单击它,然后在查找器中打开它.
  4. 导航到存档的目录,通常是 ~/Library/Developer/XCode/Archives/YYYY-MM-DD/
  5. 进入特定存档,然后进入 dSYMs 文件夹
  6. 您将看到文件 MyApp.app.dSYM 并且您可能会想,这是我应该运行 atos 的文件!这是不正确的.它实际上是另一个包! cd 进入这个包,进入文件夹:MyApp.app.dSYM/Contents/Resources/DWARF 你会找到另一个名为 MyApp 的文件.这是实际的 dSYM 文件.
  7. 运行 atos -arch armv7 -o MyApp 0x0000000(或任何内存地址)来查找错误的位置,或者干脆 atos -arch armv7 -o MyApp 进入交互模式.
  1. 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.
  2. Open XCode and go to the Organizer
  3. Find your archive and right-click it, go to open it in the finder.
  4. Navigate to the directory of the archive, usually ~/Library/Developer/XCode/Archives/YYYY-MM-DD/
  5. Go into the specific archive, and then the dSYMs folder
  6. You will see the file MyApp.app.dSYM and you may think, this is the file that I should run atos 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 called MyApp. This is the actual dSYM file.
  7. Run atos -arch armv7 -o MyApp 0x0000000 (or whatever the memory address is) to find the location of your error, or simply atos -arch armv7 -o MyApp to enter interactive mode.

这篇关于Atos 无法从归档应用程序的 dSYM 中获取符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆