【iOS】crash 解析

近日在使用友盟统计的时候,一个crash的寻找其原始地址经历,做一次记录。


image.png

上图是错误日志的虚拟内存地址,对于如何通过虚拟地址找到对应错误方法,我做如下几条总结:

一、找到xcode自带工具symbolicatecrash

# 查找本地symbolicatecrash
find /Applications/Xcode.app -name symbolicatecrash -type f
# 结果如下
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/iOSSupport/Library/PrivateFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

二、复制symbolicatecrash工具到自定义文件夹 将应用到xxx.app.dSYM放入该文件夹

xxx.app.dSYM为具有调试信息的目标文件,可以通过dSYM经过解析还原错误的代码位置

三解析过程

# 错误虚拟地址
 0x00000001045038a4 xxxx + 3848356
# 虚拟地址16进制转10 进制
printf %d 0x00000001045038a4
# 结果如下
4367333540
# 虚拟地址与偏移量进行相加
expr  4367333540 + 3848356
# 结果
4371181896
#将计算的十进制结果再转16进制
printf "%X\n" 4371181896
# 结果
1048AF148
# 通过atos [-arch 架构名] [-o 符号表] [-l 模块地址] [方法地址] 命令找到错误方法
xcrun atos -arch arm64 -o ./xxx.app.dSYM/Contents/Resources/DWARF/xxx -l 0x00000001045038a4 1048AF148 
#得到发生错误的方法
+[IFABlurryView screenShot] (in xxx) (IFABlurryView.m:61)
#然后找到对应错误并解决问题

其中atos [-arch 架构名] [-o 符号表] [-l 模块地址] [方法地址] 命令的模块地址是对于错误的虚拟内存地址

.crash文件解析

如果有.crash 文件
解析过程如下:


./symbolicatecrash ./crash.crash ./xxx.app.dSYM > crash_xxx.crash

如果无法解析,执行命令
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer

结果如下:
+[IFABlurryView screenShot] (in xxx) (IFABlurryView.m:61)
+[IFABlurryView blurImage] (in xxx) (IFABlurryView.m:49)
-[IFABlurryView init] (in xxx) (IFABlurryView.m:33)
-[IFARootNavigationController resignActive] (in xxx) (IFARootNavigationController.m:79)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS 开发过程中会遇到crash,有些很容易就能定位到,例如数组越界、类型不匹配、方法不存在等。但是有些就比较头...
    LoveY34阅读 12,841评论 1 4
  • iOS开发中,对于线上版本或公测版本产生的crash,我们可以通过结合.app ,.dSYM 及 crash lo...
    lele8446阅读 6,796评论 2 5
  • iOS开发中,经常遇到App在开发及测试时不会有问题,但是装在别人的设备中会出现各种不定时的莫名的 crash,因...
    咖咖嘻阅读 11,358评论 3 21
  • 解析崩溃日志 一 获取crash 1.用户把设备连接到电脑上,打开xcode-window,选中Devices-当...
    大虾咪阅读 11,295评论 4 3
  • dSYM 介绍 解析crash 就一定会用到 dSYM,先来了解一下。 什么是 dSYM 文件 Xcode编译项目...
    怪小喵阅读 6,628评论 3 7

友情链接更多精彩内容