2

我的应用程序在设备上运行时崩溃(顺便说一句),崩溃不能 100% 重现。但它似乎只发生在设备上,而不是在模拟器中。

当我使用 NSZombies 在模拟器中运行时,我从未发现任何问题。有人可以阐明我在下面的观点。

  • 设备内存有限,可能因此而崩溃。
  • 什么会被认为是会导致崩溃的大内存分配?
  • 内存泄漏/大分配会导致内存损坏吗?
  • 我所有的崩溃总是 EXC_BAD_ACCESS 但就像我说的那样,从来没有在模拟器上发生过,所以我不能运行僵尸。(或者还有其他方法吗?)

注意我还在模拟器上模拟了低内存警告,看看这是否会导致问题。

这让我发疯了。任何帮助,将不胜感激。

4

1 回答 1

0
I know where it crashes but I need to know which other classes released this object.

为您的对象覆盖 -[release] -[autorelease] 和 -[retain] (或者如果您不知道哪个对象,您可以为 NSObject 执行此操作),然后记录它们,设置断点。

如果您确定在每个点释放哪个对象,将时间戳/对象 ID/保留计数添加到日志语句中,那么您可能能够将所有数据放入电子表格,然后获得与 Instruments 相同的数据给你。

耻辱你必须为 3.0 构建。几乎没有人再使用 3.x,而 ARC(虽然不是解决所有问题的灵丹妙药)比非 ARC 好得多。

这里还有一个提示:从您的模拟器中删除该应用程序并重新安装它。我遇到了一个问题,我的项目中缺少一些捆绑资源,但模拟器在构建之间挂在它们上。如果您尝试加载不再在您的项目中的 .xib,我可能会看到它崩溃...

于 2012-07-09T17:56:18.153 回答