从信号量看崩溃原因

2021-12-16  本文已影响0人  yyggzc521

SIGTRAP

数组越界、类型转换失败、强制解包等引起的崩溃都属于这一种。
Apple官方资料-解决 Swift 运行时错误导致的崩溃 中有提到

SIGSEGV

段错误
当程序试图访问不被允许访问的内存区域(比如,尝试写一块属于操作系统的内存),或以错误的类型访问内存区域(比如,尝试写一块只读内存)

SIGSEGV在很多时候是由于指针越界引起的,但并不是所有的指针越界都会引发SIGSEGV。

SIGABRT

由调用abort函数产生,进程非正常退出

导致SIGABRT的原因,可能有以下几个

SIGILL

SIGBUS

由于进程引起了一个总线错误

原因:

SIGFPE

当一个进程执行了一个错误的算术操作时发送给它的信号
原因:
1.FPE_INTDIV 整数除以零
2.FPE_INTOVF 整数上溢
3.FPE_FLTDIV 浮点除以零
4.FPE_FLTOVF 浮点上溢
5.FPE_FLTUND 浮点下溢
6.FPE_FLTRES 浮点结果不准
7.FPE_FLTINV 无效浮点操作
8.FPE_FLTSUB 浮点下标越界


Apple官方资料-使用崩溃报告和设备日志诊断问题
Apple官方资料-了解崩溃报告中的异常类型

信号量崩溃原因初探

上一篇 下一篇

猜你喜欢

热点阅读