1

我的 Objective C 程序中有一个错误,它导致机器在某些库方法中崩溃,并且所有库方法都从堆栈到 main (我没有从 XCode 给我的那个中触及)。所以,我有点神秘。

我得到的错误是:

Program received signal:  “EXC_BAD_ACCESS”.

现在,我确信这意味着我在某个地方发布了太多次,或者类似的东西。这是 seg-fault 的目标 C 版本,对吧?

我的问题是:由于它没有发生在我自己的代码中,是否有一些聪明的方法可以追踪我双重发布的内容?还是代码检查是最好的选择?

谢谢。

4

1 回答 1

2

EXC_BAD_ACCESS本质上意味着您正试图以意想不到的方式访问或使用特定的内存块。例如,如果您尝试向不再代表有效对象的内存引用发送消息。它与分段错误不同,但相关。

有关调试过度释放对象的建议,请参阅此相关 SO 问题。NSZombie 将为您创造奇迹。一旦您接触到 Snow Leopard(您将在本周五得到它,对吗?),使用 Zombies 工具来简化流程,并使用 Xcode 静态分析器帮助您在编译时发现此类错误。

另请访问:http ://www.cocoadev.com/index.pl?DebuggingTechniques和此 Apple 技术说明

于 2009-08-24T20:56:58.200 回答