iTunesConnect崩溃日志部分符号化;不显示行号

时间:2011-02-02 21:30:28

标签: iphone xcode offset symbolicate

iTunesConnect for my XCode 3.2.5构建的应用程序上的崩溃日志显示方法名称,但不显示行号。例如,在我下面粘贴的简略崩溃报告中,它显示了这一点:

0x000f5ef8 -[MyTableViewController dealloc] + 120

这里有两件令我困惑的事情,我会欣赏一些见解。第一个原因是来自iTunesConnect的原始.crash文件已经部分符号化:它显示了类和方法名称,但不显示源代码文件和行号。我希望原始iTunesConnect崩溃日志显示只是十六进制地址。据我了解,只有一次我将崩溃日志下载到我的本地系统并使用适当的工具(XCode Organizer,symbolicatecrash,atos,gdb x / i命令等)以及确切的应用程序二进制文件和dSYM文件显式绑定它(那些具有匹配的UUID),我会看到类,方法,源代码文件和行号的完整符号。即使我在Windows框中下载并查看崩溃日志,它也会显示为部分符号。我担心我的分发二进制文件必须包含一些调试符号,以便在原始崩溃日志中显示此信息,尽管在其分发目标设置中设置了“剥离链接项目”。这里的任何见解都会很棒。

令我感到困惑的第二件事,就是我在解决这一备受瞩目的事故中更为直接的关注​​,就是这种抵消的业务。我已经非常仔细地找到了带有匹配UUID的dSYM和应用程序二进制文件,将它们放在我的主目录中,以便Spotlight等人可以找到它们,无论我做什么,我都无法转换该偏移量{{1}到源代码文件(我知道是MyTableViewController.m)和行号。我使用原始的iTunesConnect .crash文件尝试了以下技巧:

  • XCode Organizer:它的“符号化”不会影响崩溃日志的变化 - 它是一样的。
  • symbolicatecrash:在详细模式下它并没有真正抱怨任何东西,输出崩溃日志是相同的
  • gdb:使用XCode 3.2.5用于生成分发版本的相同gdb和-arch设置,并按照this post,gdb'x / i'和'加载匹配的应用程序二进制和dSYM符号info line *'命令告诉我[MyTableViewController dealloc] + 120对应于完全不同文件中完全不相关的代码库 - 甚至是.h文件!野鹅追逐。

有些东西不对。即使在崩溃报告,应用程序二进制文件和dSYM文件中确保完全相同的UUID,这些工具都不能产生实际的行号,并且以低级方式执行它会让我进行疯狂的追逐。知道确切的行号对于解决这个问题至关重要,因为我们无法在内部重现这次崩溃,因此我们在这里失明。这看起来是一个简单的过度释放的对象,但它不清楚它是哪个确切的对象,我们无法从上下文中分辨出来。我想知道是否有一些被盗用的XCode构建设置在某种程度上打破了符号化过程。

感谢您的时间!

以下是来自iTunesConnect的删节原始.crash日志。

[MyTableViewController dealloc] + 120

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,即释放未保留的对象或自动释放池中的对象,从而被释放两次。通常情况下,我会在框架/ iOS内部的位置发生崩溃,但这是因为我缺乏适当的内存管理。我并不是说这是在这里发生的,而是在出现类似错误时我遇到过的事情。