iphone - iOS 崩溃报告 : atos not working as expected

标签 iphone ios crash-reports symbolicatecrash symbolicate

我正在查看 Apple 提供的崩溃报告

Hardware Model:      iPhone4,1
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2012-11-18 16:03:44.951 -0600
OS Version:      iOS 6.0.1 (10A523)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x51fe5264
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libobjc.A.dylib                 0x352925b0 objc_msgSend + 16
1   MYAPP                           0x0006573a -[MyViewController(Images) didReceiveImage:context:etag:expires:] + 42
2   MYAPP                           0x0004fb26 -[MyImageTask didReceiveImage:] + 98
3   Foundation                      0x361ac8e8 __NSThreadPerformPerform
4   CoreFoundation                  0x3b37d680 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
5   CoreFoundation                  0x3b37cee4 __CFRunLoopDoSources0
6   CoreFoundation                  0x3b37bcb2 __CFRunLoopRun
7   CoreFoundation                  0x3b2eeeb8 CFRunLoopRunSpecific
8   CoreFoundation                  0x3b2eed44 CFRunLoopRunInMode
9   GraphicsServices                0x396bc2e6 GSEventRunModal
10  UIKit                           0x3452e2f4 UIApplicationMain
11  MYAPP                           0x0004934a main + 70
12  MYAPP                           0x000492fc start + 36

有趣的是,当我使用 atos 查找与地址位置 0x0006573a0x0004fb26 对应的代码行时,我得到了完全不同的匹配。 atos 输出甚至不是来自崩溃日志中提到的同一个类(MyViewController、MyImageTask)。相反,atos 将我指向一个完全不相关的类中完全良性的代码行。我再次确认我正在使用我提交给 Apple 的确切 dSYM 和 IPA。

我的 atos 命令

/Applications/Xcode.app/Contents/Developer/usr/bin/atos -arch armv7 -o MYAPP.app/MYAPP 0x0004fb26

与/usr/bin/atos 和 armv7s 的结果相同。

有没有其他人遇到过这个问题?你能给些建议么?谢谢。

最佳答案

一个更简单的替代方法:您可以使用 atos -l 标志让它为您做数学运算。

假设您在要符号化的崩溃日志中有以下行:

5   MyApp                   0x0044e89a 0x29000 + 4348058

第一个十六进制数是堆栈地址,第二个十六进制数是加载地址。您可以忽略最后一个数字。您也不必担心幻灯片地址。

要符号化,请执行以下操作:

atos -o MyApp.app/MyApp -arch armv7 -l 0x29000 0x0044e89a

如果您找不到您的 MyApp.app/MyApp 文件,请将您的“.ipa”文件重命名为“.zip”,解压它,它将位于 Payload 文件夹中。

如果您不确定要使用哪种架构(例如,armv7 或 armv7s),请滚动到崩溃文件的“二进制图像”部分,您可以在其中找到它。

干杯

关于iphone - iOS 崩溃报告 : atos not working as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574933/

相关文章:

c# - 如何在 Windows 上使用 .Net 构建 iphone 应用程序?

ios - 使用背景图像处理新的 iPhone 屏幕尺寸

browser - 浏览器供应商是否公开提供崩溃统计信息?

ios - AVCapture 在 iOS 7 中以 60 fps 捕获和获取帧缓冲区

iphone - 使用CALayer时等效的UIViewAnimationOptionBeginFromCurrentState

iphone - 有没有什么方法可以将应用程序分发给客户而不添加他的 UDID?

ios - NSUserDefault有时不会自行保存

ios - UICollectionView 页脚未显示

安卓java.lang.NumberFormatException : Invalid int: "res/drawable-hdpi/ic_menu_share.png"

ios - 测试 iOS 应用程序时,为什么不报告所有应用程序崩溃?