随机崩溃和奇怪的控制台输出

时间:2011-08-11 21:13:09

标签: objective-c memory-management exc-bad-access

我写了一个完整的应用程序,我正准备将它提交到应用程序商店,在我的最终测试中,我回过头来添加了一些版本以确保观察到正确的内存管理。从那以后,我不断收到这些随机崩溃。我已经尝试删除部分或全部释放调用,我尝试保留对象。我清理了这个项目。我使用NSZombieEnabled,但也没有帮助。这一切都无济于事。

大多数情况下,控制台说不提供任何帮助。通常应用加载,我将NSLogs放在viewDidLoadviewDidAppearviewWillAppear中,它们都显示在控制台中,然后崩溃。

有时我也会EXC_BAD_ACCESS(我知道这意味着什么)。但它随机发生。所以这对我没有意义。感谢您提供任何帮助。我写了这整个应用程序,花了几个月的时间。所以我真的被卡住了。谢谢。

3 个答案:

答案 0 :(得分:2)

你试过Build - >分析?它会搜索您的代码以查找泄漏以及您可能错过的其他有用的东西。试试看,看看它是否适合你。

答案 1 :(得分:1)

我同意鲁迪的观点。听起来你正在发布一些仍在使用的东西。我会回到正在运行的版本,并开始一次添加一个版本,直到它导致崩溃。缓慢但有效的调试。

答案 2 :(得分:1)

当你说你“有时”得到EXC_BAD_ACCESS时,剩下的时间你会得到什么?崩溃堆栈在哪里表明你崩溃了?你收到什么信息?

随机崩溃通常表示计时问题。一个常见原因是访问多个线程上的内容。你是?它还可能意味着基于网络流量的时序差异。

确保控制台不指示异常而不是内存违规。通常控制台中有一些有用的东西。