崩溃日志缺少一个符号框架

时间:2013-02-26 11:59:18

标签: ios crash-reports symbolicate

我只在一个崩溃日志中发现了这个问题,而且我无法理解为什么会这样。基本上,我已经对客户的崩溃日志进行了符号化,并且它都正确地检出并符号化,除了一个框架,它仍然是非符号化的。下面是一个片段(第9帧是问题):

6          libc++abi.dylib      0x00001114 std::terminate() + 20
7          libc++abi.dylib      0x00002513 __cxa_throw + 123
8          libstdc++.6.dylib      0x00005ba9 std::__throw_out_of_range(char const*) + 153
9          MyApp      0x002ff343  0x0000c000 + 3093315
10         MyApp      0x002ec02b -[ChildViewController tableView:cellForRowAtIndexPath:] (ChildViewController.mm:42)
11         MyApp      0x0042d725 -[ViewControllerRoot tableView:cellForRowAtIndexPath:] (ViewControllerRoot.m:198)
12         UIKit      0x0004e54d -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 413

我尝试了各种方法来使这条线符号化,但没有用。我手动运行atos,以及symbolicatecrash.pl(详细说明发生了什么)。找到了dSYM和.app文件,并且在崩溃日志的二进制映像部分中匹配应用程序的UUID。我正在使用最新的稳定Xcode,4.6。其他团队成员也尝试过,结果相同。

这里有什么问题,或者这是Objective-C的动态性问题吗?我相信它是前者,但MyApp的其他帧/符号被象征化的事实让我更加困惑!

更新:我应该澄清一下,似乎可以很容易地推断出丢失的帧,但此时有多个不同类的调用,可能都会抛出{{ 1}}错误。因此,这个缺失的框架使调试变得更加困难。

1 个答案:

答案 0 :(得分:2)

这可能是被调用的第三方代码吗?某些第三方静态库不包含符号。

另一种可能性是,此代码通过使用Xcode子项目生成的静态库进行集成。此项目设置为从静态库中删除符号。

这两种情况都会导致这些调用的崩溃报告中没有符号出现。