NSZombieEnabled没有帮助我的obj_msgSend

时间:2011-10-17 18:48:32

标签: objective-c ios xcode4 xcode4.2

我在EXC_BAD_ACCESS

上使用我的iPhone应用获得0x01ad809b <+0015> mov 0x8(%edx),%edi

我将NSZombieEnabled设置为YES,但我没有像平时那样在调试器中看到任何类。

有没有其他方法可以调试此问题?

3 个答案:

答案 0 :(得分:0)

由于内存损坏,使用未初始化的变量和/或将非对象类型转换为对象而导致崩溃。

首先,发布崩溃的回溯。这将提供更多背景。

其次,尝试构建和分析。修复它识别的任何问题。

最后,如果这是一次新的崩溃,请在崩溃前返回修订版,然后前滚直至崩溃。在这段时间内所做的改变是什么?

有了更多的上下文 - 特别是崩溃日志(或者至少是回溯) - 可以提供更具体的调试技术。

答案 1 :(得分:-1)

您可以选择断点导航器并在所有异常上添加断点。也许它会有所帮助。

尝试使用malloc信息。

答案 2 :(得分:-1)

使用Instruments来分析和检测僵尸。

  1. 将构建目标更改为模拟器
  2. Build菜单中,选择Profile
  3. 将打开乐器,然后选择Zombies乐器
  4. 这会自动设置NSZombieEnabled标志,并在每次发出解除分配的对象时弹出一条消息。单击该公开将显示该对象的内存管理事件。