Ios 崩溃日志缺少一个符号化的帧
我只在一份事故日志中注意到了这个问题,我不太明白为什么会发生这种情况。基本上,我已经用符号表示了一个客户的崩溃日志,它全部检查出来并正确表示,除了一个帧,它仍然没有符号化。下面是一个代码片段(问题出在第9帧): 我尝试了各种方法来将这条线符号化,但都没有成功。我已经手动运行了atos,以及symbolicatecrash.pl(详细地查看发生了什么)。可以找到dSYM和.app文件,它们与崩溃日志二进制图像部分中应用程序的UUID匹配。我使用的是最新的稳定Xcode,4.6。其他团队成员也进行了尝试,取得了相同的结果 这里是否出了什么问题,或者这是Objective-C的动态特性的问题?我相信是前者,但MyApp中的其他帧/符号是符号化的,这一事实让我更加困惑Ios 崩溃日志缺少一个符号化的帧,ios,crash-reports,symbolicate,Ios,Crash Reports,Symbolicate,我只在一份事故日志中注意到了这个问题,我不太明白为什么会发生这种情况。基本上,我已经用符号表示了一个客户的崩溃日志,它全部检查出来并正确表示,除了一个帧,它仍然没有符号化。下面是一个代码片段(问题出在第9帧): 我尝试了各种方法来将这条线符号化,但都没有成功。我已经手动运行了atos,以及symbolicatecrash.pl(详细地查看发生了什么)。可以找到dSYM和.app文件,它们与崩溃日志二进制图像部分中应用程序的UUID匹配。我使用的是最新的稳定Xcode,4.6。其他团队成员也进行了
更新:我应该澄清一下,似乎可以很容易地推断出缺少的帧,但此时有多个对多个不同类的调用,这可能会导致
超出范围的错误。因此,这个丢失的帧使调试变得更加困难。这可能是调用的第三方代码吗?某些第三方静态库不包含符号
另一种可能性是,该代码通过与Xcode子项目一起生成的静态库进行集成。此项目设置为从静态库中剥离符号
这两种情况都会导致这些调用的崩溃报告中没有出现任何符号。不幸的是,堆栈的这个框架中没有使用任何静态库。当使用atos手动进行符号化时,您是否遵循此处发布的规则将正确的地址传递给atos?是的,我从atos-arch-armv7-o MyApp.app.dSYM/Contents/Resources/DWARF/MyApp 0x002F4343
得到的输出是0x002F4343(在MyApp中)
。没有符号信息…如果没有项目本身和dSYM以及其他排除的情况,我怀疑是否有可能找出符号中缺少此帧的原因。
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