iOS Crash文件的解析(一)
教你如何对ios崩溃(crash)日志做符号化
IOS本地日志记录解决方案
友盟统计错误分析,定位到项目具体位置
注意:日志统计只用一种,因为多种的话可能相互拦截。
SIGABRT出现的原因:
1.越界
2.assert
3.重复释放
4.找不到对应的方法
1.我们需要将 xx.app 和 xx.app.dSYM 文件找出来,放到一个文件中.
2.进入上述文件。
3.找到crash的地址。
4.输入命令 xcrun atos -arch arm64 -o xxxx.app/xxxx 0x10019bc48
- 其中 arm64是CPU Type;
- xxxx对应的是你的工程名,也就是上文友盟错误报告图片中打红色马赛克的部分;
- 0x10019bc48 是错误代码的地址,也就是上文友盟错误报告图片中淡绿色的那个内存地址。
注意:每编译一次,.app和.dSYM不会重新生成,所以要查看crash原因,要保存好crash对应的.app和.dSYM。
根据.dSYM、.app、crash.crash符号化crash
1. 将.dSYM、.app、crash.crash放到同一个文件夹下。
2. grep "AppName arm" *crash
- crash1.crash:0x100040000 - 0x100e23fff +AppName arm64 /var/containers/Bundle/Application/55A4D641-847F-4D24-86E1-129B28461858/AppName.app/AppName
- 其中0x100040000是加载地址(loadingAddress), 而arm64、armv7 是 architecture 的值(architectureValue),这两个值后面都要用。
3. xcrun atos -o appName.app.dSYM/Contents/Resources/DWARF/appName -l loadingAddress -arch architectureValue
如:xcrun atos -o AppName.app.dSYM/Contents/Resources/DWARF/AppName -l 0x100040000 -arch arm64
4. 输入crash函数地址
网友评论