iOS Crash(崩溃)类型

2021-03-26  本文已影响0人  李晏书

废话不多说,直接看iOS APP奔溃的几种类型

1.Mach异常

Mach 是一个 XNU 的微内核核心,Mach 异常是指最底层的内核级异常,被定义在 下 。每个 thread,task,host 都有一个异常端口数组,Mach 的部分 API 暴露给了用户态,用户态的开发者可以直接通过 Mach API 设置 thread,task,host 的异常端口,来捕获 Mach 异常,抓取 Crash 事件。

2.Unix 信号

所有 Mach 异常都在 host 层被ux_exception转换为相应的 Unix 信号,并通过threadsignal将信号投递到出错的线程。iOS 中的 POSIX API 就是通过 Mach 之上的 BSD 层实现的。

3.C++ exceptions

这个比较简单,直接调用了标注库的std::set_terminate(CPPExceptionTerminate)函数,设置CPPExceptionTerminate为C++ exceptions 的异常处理函数。

4.Object C 异常

查找奔溃的位置:

1.集成腾讯-SDK,bugly

https://bugly.qq.com/

2.集成开源第三方库 KSCrash

https://github.com/kstenerud/KSCrash

KSCrash解析可以参考:

https://www.it610.com/article/1191455498289913856.htm

3.如果只有崩溃地址,怎么手动查找崩溃位置呢?

参考我的下一篇文章

上一篇 下一篇

猜你喜欢

热点阅读