查看奔溃分析

https://honchwong.github.io/

https://developer.apple.com/library/archive/technotes/tn2151/_index.html#//apple_ref/doc/uid/DTS40008184-CH1-EXCEPTION_INFO

  • Exception Type: 在 EXC_CRASH (SIGKILL) 中
    • EXC_CRASH 为Mach层的异常类型,定义在darwin-xnu的/osfmk/mach/exception_types.hEXC_CRASH 表示进程异常退出了。通常是因为未捕获的Objective-C/C++的异常导致进程被终止,这时BSD层的信号应该为 SIGABRT,Exception Type为 EXC_CRASH (SIGABRT)
    • 后者为 BSD层的信号,定义在darwin-xnu的/bsd/sys/signal.h,SIGKILL表示进程被系统终止,而且这个信号不能被阻塞、处理和忽略。这时可以查看Termination Reason字段了解终止的原因。
    • (Mach层异常和BSD层的信号的区别和关系在系列其他文章中讨论)
  • Exception Codes: 这个字段一般用不上,当崩溃报告包含一个未命名的异常类型时,这个异常类型将用这个字段表示,形式是十六进制值。
  • Exception Note: EXC_CORPSE_NOTIFY 和 EXC_CRASH定义在同一个文体中,意思是进程异常进入 CORPSE状态。
  • Termination Reason: 这里主要关注 Code 0x8badf00d,可以在Apple 文档中查看到 0x8badf00d 表示进程因为watchdog 超时而被iOS 结束进程。

posted @ 2019-08-30 16:23  雨筱逸悠  阅读(233)  评论(0编辑  收藏  举报