最近接手项目,一打开,直接报错,错误信息如题所示。
首先,我们就要了解,啥是signal 6?
通过查找源码,找到系统signal.h里面的内容
接着,我们需要了解,啥是SIGABRT?
SIGABRT代表SIGNAL ABORT(中止信号)
- abnormal termination condition, as is e.g. initiated by abort()
- 通常由于异常引起的中断信号,异常发生时系统会调用abort()函数发出该信号
- iOS平台,一种是由于方法调用错误(调用了不能调用的方法)
- iOS平台,一种是由于数组访问越界的问题
当操作系统发现不安全的情况时,它能够对这种情况进行更多的控制;必要的话,它能要求进程进行清理工作。在调试造成此信号的底层错误时,并没有什么妙招。Cocos2d或UIKit等框架通常会在特定的前提条件没有满足或一些糟糕的情况出现时调用C函数abort(由它来发送此信号)。当SIGABRT出现时,控制台通常会输出大量的信息,说明具体哪里出错了。由于它是可控制的崩溃,所以可以在LLDB控制台上键入bt命令打印出回溯信息。
而对应我这个项目,则是发生在项目加载过程,这时候,并没有方法调用或数组访问越界 。查找错误信息上下文,发现正在加载静/动态库中。所以做出大胆推测,是因为动态库并没有正确加载。
具体的处理如下:
https://blog.csdn.net/lrbtony/article/details/118520310
至此,问题得到圆满解决。
还是那句老话,凡事遇到阻碍不用慌张,慢慢分析,找到问题关键所在,才能彻底解决问题。