我一直在使用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/