自从我开始学习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个块捕捉到它们.

您可以将信号处理器设置为signalsigaction函数.记住一些信号,比如西格伯特无法被阻止.

如果你想了解更多信息,可以查看关于信号的Wikipedia页.

也就是说,要恢复:

SIGSEGV (Segmentation fault)

访问无效的内存地址.该地址存在,但您的程序无权访问它.

SIGBUS (Bus error)

访问无效的内存地址.地址不存在,或对齐方式无效.

SIGFPE (Floating point exception)

无效的算术运算.可以与整数运算相关,尽管名称不同.

信号管

管子断了.

西格尔

非法的处理器指令.

信号trap

调试器相关

西格伯特

程序崩溃,与前面的信号之一无关.

Objective-c相关问答推荐

使用 NSMutableString 附加到文件的末尾

iPhone:将日期字符串转换为相对时间戳

ios10:viewDidLoad 框架宽度/高度未正确初始化

在objective-c中isa是什么意思?

验证应用内购买的收据

Objective C 代码是否有 github markdown 语言标识符?

在 ARC 中清零弱引用

iOS 7 - viewDidLoad 和 viewDidAppear 之间的区别

如何转储存储在 Objective-C 对象(NSArray 或 NSDictionary)中的数据

从 UIPageViewController 中移除视图控制器

在 NSNumbers 的 NSArray 中查找最小值和最大值

发出许多网络请求的 iOS 应用程序的最佳架构?

声音在 iPhone 模拟器中不起作用?

iOS 5:对 UIAppearance 感到好奇

NSManagedObjectContext:异常断点在 save: 方法处停止,但没有日志(log)/崩溃/错误

获取字符串的最后 2 个字符?

UIScrollView - 显示滚动条

为什么 LLDB 不能打印 view.bounds?

目标覆盖 FRAMEWORK_SEARCH_PATHS 构建设置

如何在没有死锁的情况下同步调度主队列?