美文网首页
iOS崩溃类型及说明

iOS崩溃类型及说明

作者: WestMiss | 来源:发表于2018-03-25 23:39 被阅读354次
    • EXC_BAD_ACCESS
      访问一个已经释放的对象,或者向他发送消息时,EXC_BAD_ACCESS就会出现。造成EXC_BAD_ACCESS最常见的原因是,对属性用错了所有权修饰符,这会导致对象被释放。
    • SIGSEGV
      段错误信号(SIGSEGV)是操作系统产生的一个严重的问题,属于EXC_BAD_ACCESS的子类型,当硬件出现错误,访问不可读的内存地址或者向受保护的内存地址写入数据时,就会发生这个错误。这种错误并不常见,而导致这种错误最常见的原因是不正确的类型转换。
    • SIGBUS
      总线错误信号(SIGBUS)代表无效内存访问,即访问额内存是一个无效的内存地址。也就是说,那个地址指向的位置根本不是物理内存地址。和SIGSEGV一样,SIGBUS也属于EXC_BAD_ACCESS的子类型。
    • EXC_ARITHMETIC
      当要除零时,应用会收到EXC_ARITHMETIC信号。这个错误很容易处理。
    • SIGILL
      SIGILL代表SIGNAL ILLEGAL INSTRUCTION(非法指令信号)。当在处理器上执行非法指令时,它就会发生。执行非法指令是说,将函数指针传给另一个函数时,该函数指针由于某种原因是坏的,指向了一段已经释放了的内存或者一个数据段。
    • SIGABRT
      SIGABRT代表SIGNAL ABORT(中止信号)。当操作系统发现不安全的情况时,它能够对这种情况进行更多的控制;必要的话,它能要求进程进行清理工作。通常UIKit框架在特定的前提条件没有满足或者一些其他情况出现时候调用C函数abort(由它来发送此信号)。当SIGABRT出现时,控制台通常会输出大量的信息,说明哪里出错。由于SIGABRT是可控制的,所有可以再LLDB控制台上输入bt命令打印出回溯信息。
    • 看门狗超时
      这种崩溃容易分辨,错误码固定是0x8badf00d,可以读作(Ate Bad Food)。在iOS中,经常出现在执行一个同步网络调用而阻塞主线程的情况。

    相关文章

      网友评论

          本文标题:iOS崩溃类型及说明

          本文链接:https://www.haomeiwen.com/subject/iezkcftx.html