iOS 崩溃日志 Backtrace的符号化

iOS的崩溃日志配合dsym文件可以找到崩溃时的backtrace,这是解决崩溃的最重要的信息.

如果是在同一台mac上打包, 导入crash log时候会自动将backtrace符号化,可以看到方法名, 文件名和行号

但是,有时候发版的包不是在你的mac上打包的,xcode找不到对应的符号表, backtrace没能符号化如下所示:

Last Exception Backtrace:

0 CoreFoundation 0x2cb535f2 __exceptionPreprocess + 122

1 libobjc.A.dylib 0x3a3c5c72 objc_exception_throw + 34

2 CoreFoundation 0x2ca67152 -[__NSArrayM objectAtIndex:] + 226

3 myapp 0x004fe736 0x9b000 + 4601654

4 myapp 0x00507ed4 0x9b000 + 4640468

5 myapp 0x004fd112 0x9b000 + 4595986

6 myapp 0x003275c6 0x9b000 + 2672070

这里第二行可以看到是一个数组objectAtIndex抛出异常,但是3-6行的是来自应用自己的代码myapp, 这些信息才是最重要的.

其实,只要有原app文件,是可以将这些信息找到.

方法:

将对应版本的myapp.app文件和crash文件放在同一个文件夹下, 注意,一定要是该应用正确版本的app, 因为每次打包, 符号表的映射关系都有可能不同,如果不对应的话是没法符号化的.

然后运行

atos -arch armv7 -o myapp.app/myapp -l 0x9b000 0x004fe736

这个方法 -arch后面是指硬件架构:

iphone 1,2,3 是armv6

iphone4,4s 是 armv7

iphone5,5c是armv7s

iphone 5s, 6, 6+, 6s, 6s+ 是arm64

根据崩溃发生的设备来选择上述架构, myapp.app就是你的app的文件名, 选项l后面的两个16进制数是关键:

第一个数字,取backtrace的要解析的行的第4列, 第二个数字取第3列, 就会得到对应的方法名,文件名,行号.

这样,可以将上述3-6行中一行一行的解析出来,就能看到发生崩溃的地方,再进行分析就简单了.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BackTrack Linux(现在已经更名为Kali Linux)是一款基于Debian的Linux发行版,主要用于网络安全和渗透测试。它集成了大量的渗透测试工具和安全审计工具,方便安全专业人员进行各种网络安全测试和攻击模拟。 安装BackTrack Linux(Kali Linux)可以按照以下步骤进行操作: 1. 下载BackTrack Linux(Kali Linux)的ISO镜像文件。您可以前往官方网站或者其他可靠的下载来源获取ISO镜像文件。 2. 创建一个可启动的USB闪存驱动器或者光盘。您可以使用软件如Rufus、UNetbootin或者Etcher等工具,将ISO镜像文件写入USB闪存驱动器或者刻录到光盘上。 3. 将USB闪存驱动器插入您的计算机或者将光盘放入光驱,并重启计算机。 4. 进入计算机的BIOS设置界面。您需要将计算机的启动顺序设置为从USB闪存驱动器或者光盘启动。 5. 保存设置并重新启动计算机。计算机将从BackTrack Linux(Kali Linux)的安装介质启动。 6. 在启动菜单中选择安装BackTrack Linux(Kali Linux)。您可以选择图形化安装或者文本安装,根据自己的喜好和需求进行选择。 7. 按照安装向导的提示,进行分区设置、用户创建、安装源选择等配置。 8. 等待安装程序完成,然后重新启动计算机。 9. 完成安装后,您可以登录到BackTrack Linux(Kali Linux)系统,根据需要进行进一步的配置和使用。 请注意,BackTrack Linux(Kali Linux)是针对网络安全专业人员和渗透测试人员设计的操作系统,使用时需遵循法律和道德规范,仅在合法授权和合规的情况下使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值