Press "Enter" to skip to content

根据符号表定位Crash代码处-atos命令工具

什么是符号表?可以看这里 符号表 。

集成了Bugly程序异常上报的SDK,一天测试人员说崩溃了,赶紧登入到Bugly后台管理端查看,果然在卡顿列表里有上报,奇怪,既然是崩溃,为何在卡顿异常列表里?

于是,点进出错堆栈去看为何崩溃,发现并没有对应到异常的代码方法,而是报了普通的16进制地址,之前配置的是自动上传符号表的,符号表选项也有显示已上传,于是打算手动重新生成.zip符号表(生成工具和方法),😓竟然Java在执行过程中出错,用sh去执行竟然在Mac下不支持,仅支持Linux下。

于是再看堆栈报错,点原始,看16进制地址,想到了atos命令,可以通过stack address 和 load address用atos命令去dSYM中查。

然后回车,此时要输入 stack address。

至此,查找出是由于内存泄露,导致内存严重过大,发送内存警告后,在didReceiveMemoryWarning清理了YYImage的缓存,依然没有释放掉多余的内存,于是崩溃,这应该也是为何显示在了卡顿列表中。

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注