iOS奔溃分析技巧-crash日志符号化

本文介绍了iOS应用崩溃分析的方法,包括crash日志的结构、获取方式,以及如何进行符号化处理。通过理解符号表的作用和获取,使用symbolicatecrash工具,开发者能更准确地定位和解决线上版本的崩溃问题。
摘要由CSDN通过智能技术生成

前言

iOS开发需要不停发版本,开发者要面临线上各种版本的奔溃日志(crash log),解决奔溃问题是移动开发者最日常的工作之一.

在实际的项目开发中,崩溃问题,依赖xcode,依赖于系统记录的崩溃日志或错误堆栈,在本地开发调试阶段,是没有问题的。
如果在发布的线上版本出现崩溃问题,开发者是无法即时准确的取得错误堆栈的,需要获取到crash日志,进行相应处理。

简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的。对iOS的crash日志进行分析,做符号化,才能准确定位到发生崩溃的原因。

一、crash日志的结构

crash日志主要由6部分组成:
1、进程信息
2、基本信息
3、异常信息
4、线程回溯
5、crash调用堆栈(全是地址信息,需要使用符号表转成可读的)
6、动态库信息(第5部分依赖的库)

iOS的符号化也主要是根据第5和第6部分进行,只有把第5部分后面的二进制的地址信息映射成代码信息,才能定位到发生crash的原因。

符号化前-1
符号化前-2
符号化前-3

对crash日志进行符号化之后的结果如下:

符号化后-1
符号化后-2
符号化后-3

二、crash日志的获取方式

在iOS中获取崩溃信息的方式有很多,比较常见的是使用友盟、百度等第三方分析工具,或者自己收集崩溃信息并上传公司服务器。

下面列举一些我们常用的崩溃分析方式:
1、使用友盟、百度等第三方崩溃统计工具。
2、自己实现应用内崩溃收集,并上传服务器。
3、Xcode-Devices中直接查看某个设备的崩溃信息。
4、使用苹果提供的Crash崩溃收集服务。(少用)

1、自己实现应用内奔溃收集

苹果给我们提供了异常处理的类,NSException类。这个类可以创建一个异常对象,也可以通过这个类获取一个异常对象。
这个类中我们最常用的还是一个获取崩溃信息的C函数,我们可以通过这个函数在程序发生异常的时候收集这个异常。

// 将系统提供的获取崩溃信息
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值