文章目录
前言
在iOS上Crash最终都是通过signal的形式发送给应用,应用可以通过注册signal handler来选择处理或忽略大部分信号。
Crash的原因有多种,系统通过不同的signal来告知app这大概是什么原因造成的,常见的信号比如:SIGSEGV,SIGTRAP,SIGABRT
其中SIGKILL,SIGSTOP信号是无法被捕获或忽略等自定义处理的;
一个crash日志主要关注点
- 设备和应用信息:Process,Identifier,Version,OS Version
- 类型:Exception Type即crash信号值
- 地址:Exception Codes是crash发生的地址信息
- 问题线程:Triggered by Thread是crash发生的具体线程
- 问题线程堆栈
- crashed with ARM Thread State 问题线程寄存器信息
- Binary Images信息,主要用来堆栈回溯,以及用于定位内存或符号