我一直在使用this technique来了解我的崩溃报告(第一次这样做是我的负担)

崩溃报告:

Last Exception Backtrace(最后两行来自我的程序而不是框架):


  'appname'0x0002c93e 0x2b000 + 6462
  
  'appname'0x0002c3f0 0x2b000 + 5104


在终端中输入:


  atos -arch armv7 -o'appname'.app /'appname'0x2b000 + 6462


然后回来:


  -[CameleonInCallNumberListViewControler callChange](在“ appname”中)+ 6464
  
  +
  
  -[CameleonAppDelegate applicationWillEnterForeground:](在“ appname”中)+ 546


最后一行


  atos -arch armv7 -oCaméléon.app/Caméléon0x2b000 + 5104


然后回来:


  -[CameleonInCallNumberListViewControler callChange](在“ appname”中)+ 6464
  
  +
  
  -[CameleonAddressbookViewController gPressed](在“ appname”中)+ 88


所以我的问题是为什么为什么有2个选择器/方法签名而不是一个,并且有什么方法可以使它崩溃的行号?

最佳答案

您提供了两个数字,因此该工具正在寻找两个方法

atos -arch armv7 -o Caméléon.app/Caméléon 0x2b000 + 5104
                                            ^1       ^2


由于这些是分开的,因此将它们视为不同的参数。您应该只在堆栈跟踪的每一行中使用第一个数字。

'appname' 0x0002c93e 0x2b000 + 6462
           ^


该数字是函数调用的实际地址。您正在使用的下一个数字是方法开始的位置以及该方法中的偏移量。这就是为什么每个测试的第一个结果都相同的原因。它们以相同的方法而不是同一行出现。

关于objective-c - 解读崩溃报告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12786639/

10-12 14:45