如何利用dsym文件定位线上问题

当iOS应用出现线上崩溃,仅靠崩溃日志难以定位时,可以借助dsym文件和DSYMTools工具进行分析。通过获取dsym的udid,转换错误内存地址并减去偏移量,可以找到对应代码位置,从而解决崩溃问题。在案例中,错误发生在`hasGrabRedEnvelopeViewWithCurrentDay:currentHour:`方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们app发布之后一般拿到线上的崩溃日志,线下根据崩溃日志来进行修改代码。
但有时我们抓取的崩溃日志有些具体定位不到哪个文件,哪行,这个时候利用dsym文件结合DSYMTools分析工具,可以定位到具体代码位置

1.错误的日志(无法直接定位问题位置)
在这里插入图片描述
我们定位问题的话,主要看上图标出来的5,6,7,8,9行。其中:
1和3:A05_iPhone 是App的名字
2:0x0000000100ac75d0 16进制地址代表崩溃的错误地址
4:603600十进制 偏移量

下面我们利用DSYMTools来进行分析
DSYMTools工具下载链接

在这里插入图片描述

  1. dsym文件的udid:
    打开终端输入xcrun dwarfdump --uuid dsym文件路径

2)错误信息的内存地址:0x0000000100ac7b34
在这里插入图片描述
3)Slide Address = (((错误信息的内存地址:0x0000000100ac7b34 ) 转为10进制) -
(后面的偏移量 604980)转为16进制)

注意点:
错误信息的内存地址:0x0000000100ac7b34转为10进制时需要去掉0x字符,开头的0也可以去掉(0x是16进制的代表符)
0x0000000100ac7b34(16)= 43062

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值