iOS崩溃堆栈符号化,定位问题分分钟搞定!

最近一段时间,在跟开发者沟通过程中,萝莉发觉有些开发者对iOS的应用符号表还不是很清楚,除了咨询关于符号表生成、配置的问题以外,对Bugly崩溃分析需要配置符号表也存在疑问。

在这里,萝莉就给大家分享下关于iOS符号表的一些内容。

首先,进行常识“脑补”。

 

1. 符号表是什么?

  • 符号表就是指在Xcode项目编译后,在编译生成的二进制文件.app的同级目录下生成的同名的.dSYM文件。
  •  .dSYM文件其实是一个目录,在子目录中包含了一个16进制的保存函数地址映射信息的中转文件,所有Debugsymbols都在这个文件中(包括文件名、函数名、行号等),所以也称之为调试符号信息文件。
  • 一般地,Xcode项目每次编译后,都会生成一个新的.dSYM文件。因此,App的每一个发布版本,都需要备份一个对应的.dSYM文件,以便后续调试定位问题。

注意:
项目每一次编译后,.app.dSYM成对出现,并且二者有相同的UUID值,以标识是同一次编译的产物。
UUID值可以使用dwarfdump—uuid来检查:

<span style="font-family:Microsoft YaHei;font-size:12px;">$ dwarfdump --uuid XX.app.dSYM
$ dwarfdump --uuid XX.app/XX</span>

那么,问题就来了!

 

2. 符号表有什么用?

在Xcode开发调试App时,一旦遇到崩溃问题,开发者可以直接使用Xcode的调试器定位分析。

但如果App发布上线,开发者不可能进行调试,只能通过分析系统记录的崩溃日志来定位问题,在这份崩溃日志文件中,会指出App出错的函数内存地址,而这些函数地址是可以在.dSYM文件中找到具体的文件名、函数名和行号信息的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值