在我自己的开发(Mac、iOS)中,最常见的调试错误之一是 EXC_BAD_ACCESS。尽管它很常见,但它的起源和确切含义仍然是神秘的。谷歌列出了许多出现的错误,但我能找到的唯一解释是非正式的和不完整的。
我知道这个异常(如果这是正确的术语)意味着代码试图访问它没有读取和/或写入权限的地址 - 例如,空地址或进程的地址空间。但这是基于我之前在虚拟内存和受保护内存系统方面的经验的直观解释。我从来没有在任何地方看到过 EXC_BAD_ACCESS 的文档,实际上我不确定“谁”向我发送了这个异常——CPU、Mac OS、UNIX、运行时、调试器?——所以我不知道该问谁(那个是,要查阅哪类文档)。例如,我想知道与异常一起列出的“代码”是什么意思。或者另一个例子:还有哪些其他类的类似异常(大概也标有“EXC_”
我在哪里可以从权威来源找到 EXC_BAD_ACCESS、其代码和一般语义的解释?什么是权威来源——实际上是谁在检测和抛出异常?