【问题标题】:Where is EXC_BAD_ACCESS documented? [closed]EXC_BAD_ACCESS 记录在哪里? [关闭]
【发布时间】: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


    【解决方案1】:

    我能找到的关于 EXC_BAD_ACCESS 的唯一官方文档是名为 Finding EXC_BAD_ACCESS bugs in a Cocoa project 的技术问答。它已过时,仅证实了您已经知道的内容:

    这种问题通常是过度释放对象的结果。这可能非常令人困惑,因为失败往往发生在错误发生之后。当程序深入框架代码时也可能发生崩溃,通常在堆栈中看不到您自己的代码。

    确实,它可能非常令人困惑。至少苹果承认这一点。 :)

    【讨论】:

      猜你喜欢
      • 2013-05-25
      • 2011-04-15
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      相关资源
      最近更新 更多