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