Crash分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Crash分析相关的知识,希望对你有一定的参考价值。
参考技术A SIGABRT:异常终止条件,例如abort()所发动者SIGSEGV:非法内存访问(段错误)
SIGTERM: 发送给程序的终止请求
SIGINT: 外部中断,通常为用户所发动
SIGILL: 非法程序映像,例如非法指令
SIGFPE: 错误的算术运算,例如除以零
0x8badf00d 表示app在一定时间内无响应被watchdog杀掉,对此类crash,应该审查app在初始化时的操作是否正确,是否在主线程请求了网络调用或者其他耗时的操作方法卡住了正常初始化流程。简单来说就是看门狗超时,在iosapp上,经常出现在执行一个同步网络请求调用而阻塞主线程的情况
0xdeadfa11 表示app被用户强制退出
0xc00010ff 表示app因运行温度过高而被杀掉
用户手机上 设置 -> 隐私 -> 分析 里面的,可以连接电脑 Xcode 导出。
在 Xcode -> Window -> Organizer -> Crashes 里面可以查看
优点: 理论上捕获类型最全,因为是 launchd 进程捕获的日志。
缺点:不是全量日志,因为需要用户隐私授权才会上报,没有数据化支撑。
接入一些 APM 产品, 如 EMAS、mPaaS、phabricator 等。
接入 PLCrashReporter 、 KSCrash 等 SDK 进行收集,上报到自建平台统计
优点:可以自建数据化支撑,获取 Crash 率等指标。
缺点:存在无法捕获的 Crash 的类型。
苹果收集的日志,Xcode会自动帮我们符号化,如果你没有发布包,比如是别人电脑打包的发布包,或者是一些平台上打的包,只需要你把 xcarchive 拷贝到 $HOME/Library/Developer/Xcode/Archives 目录下之后,Xcode 就可以自动帮你符号化了。
“.app”, “.dSYM”和 ".crash"文件放到同一个目录下
设置环境变量路径
终端下执行命令:
在审核时或线上版本中经常会出现各种离奇的崩溃,本文以命令行分析崩溃定位:
准备:
参考&引用&拓展阅读
以上是关于Crash分析的主要内容,如果未能解决你的问题,请参考以下文章