自从我开始学习iOS开发以来,我看到了几种不同类型的崩溃日志(log).
我知道:
but don't know about:
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Type: EXC_CRASH (SIGABRT)
Exception Type: EXC_BREAKPOINT (SIGTRAP)
你知道iOS崩溃日志(log)中有多少种异常类型,它们是什么意思吗?
自从我开始学习iOS开发以来,我看到了几种不同类型的崩溃日志(log).
我知道:
but don't know about:
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Type: EXC_CRASH (SIGABRT)
Exception Type: EXC_BREAKPOINT (SIGTRAP)
你知道iOS崩溃日志(log)中有多少种异常类型,它们是什么意思吗?
我知道:异常类型:EXC_BAD_ACCESS(SIGSEGV)表示我们正在访问一个已发布的对象.
No.
SIGSEGV是一种分段错误,意味着您试图访问无效的内存地址.
这些例外(事实上,它们是信号)与Objective-C无关,而是与C有关.
请注意,信号不是例外,这意味着您无法用@try
和@catch
个块捕捉到它们.
您可以将信号处理器设置为signal
和sigaction
函数.记住一些信号,比如西格伯特无法被阻止.
如果你想了解更多信息,可以查看关于信号的Wikipedia页.
也就是说,要恢复:
访问无效的内存地址.该地址存在,但您的程序无权访问它.
访问无效的内存地址.地址不存在,或对齐方式无效.
无效的算术运算.可以与整数运算相关,尽管名称不同.
管子断了.
非法的处理器指令.
调试器相关
程序崩溃,与前面的信号之一无关.