从时间到时间,在调试应用程序,我看到的Xcode这个错误:iPhone - 调试EXC_BAD_ACCESS崩溃
程序接收到的信号:“EXC_BAD_ACCESS”。
并且调试器不停止在有问题的行上。事实上,调试器只是向我展示了一大堆汇编语言代码,就是这样。
我必须有超自然的力量才能找出确切的问题在哪里。
有没有办法迫使Xcode给我更多的“营养”错误信息 - 可以详细解释问题 - 并在出现这种错误时停止违规行?
感谢您的任何帮助。
从时间到时间,在调试应用程序,我看到的Xcode这个错误:iPhone - 调试EXC_BAD_ACCESS崩溃
程序接收到的信号:“EXC_BAD_ACCESS”。
并且调试器不停止在有问题的行上。事实上,调试器只是向我展示了一大堆汇编语言代码,就是这样。
我必须有超自然的力量才能找出确切的问题在哪里。
有没有办法迫使Xcode给我更多的“营养”错误信息 - 可以详细解释问题 - 并在出现这种错误时停止违规行?
感谢您的任何帮助。
您可以启用NSZombies see here,我发现了一个很好的方法来查看实际问题,在打开调试器的情况下运行和调试程序。
这种方式当程序停止更频繁地执行时,会显示程序崩溃时正在执行的行。
发生崩溃时,在Xcode中打开调试器(运行 - >调试器)。应该有3至4个窗格这样的:
在左上窗格(“堆栈跟踪”),选择其不是灰色的最顶行。
(注意:有时,堆栈跟踪只能找到,因为坏的内存管理的内部功能的运行循环触发尝试建立 - >建立与分析,首先消除所有潜在的内存管理错误)
谢谢!!!!!!!!! – SpaceDog 2010-03-07 06:47:46
我写了一篇博客,告诉你如何使用一些编译器开关,这些编译器开关可以帮助你找到崩溃,这些崩溃是在你完成它们之前释放对象的结果。
http://loufranco.com/blog/files/debugging-memory-iphone.html
建立与分析是确定的,但不能作为扫描生成(它是基于)一样好。安装说明在这里:
http://loufranco.com/blog/files/scan-build-better-than-build-analyze.html
谢谢。我已启用此功能,但我没有看到任何公开执行。错误消息从EXC_BAD_ACCESS变为...- [CALayer retain]:发送到释放实例0x182200的消息...但我不明白这有什么帮助,因为我的代码中没有关于此对象的线索......我有许多CALayers ...这是控制台上唯一打印的行。 – SpaceDog 2010-03-07 02:25:50
如果你打开调试器,你应该能够看到堆栈跟踪,它应该提供更多的信息 – 2010-03-07 11:29:36