iOS EXC_BAD_ACCESS:如何调试?

时间:2014-08-05 17:20:14

标签: ios debugging exc-bad-access

我正在获得EXC_BAD_ACCESS。我知道这通常意味着什么:尝试访问不存在的对象(不再)是最可能的原因。

那么,我在哪里找到它?

我在网上看过很多帖子,他们都说:

计划中的“启用NSZombie”。

现在,当我运行调试器时,我应该看看什么?我看不出任何差异......

注意:这不是关于我的代码中的特定错误,而是一般如何在启用NSZombie的情况下使用调试器

2 个答案:

答案 0 :(得分:3)

我要做的是在绿色箭头上方一行找到一个断点,显示EXC_BAD_ACCESS错误。然后再次运行您的代码并重现生成崩溃的步骤。

当您到达断点时,您可以使用Xcode控制台左侧的右键单击和打印说明检查对象是否为有效对象,或者输入命令' po'在XCode的控制台部分。这就是我通常如何检测错误。

有用的是在调试器停止后跟踪堆栈。它在左侧面板中显示断点之前方法的线程和调用链。

希望这有所帮助,并希望我对如何跟踪错误的替代方案的描述有所帮助。

答案 1 :(得分:1)

@synchronized(){}块中编写代码。

试试这个:

@synchronized (self){   //Your Code   }