有时候,在调试应用程序时,我在Xcode上看到了这个错误:
编程接收信号:“EXC_BAD_ACCESS”。
并且调试器不会停在有问题的行上。事实上,调试器只是向我展示了一个包含汇编语言代码的页面,就是这样。
我必须拥有超自然力量才能找出确切问题所在。
有没有办法强制Xcode给我更多“营养”错误信息 - 可以详细说明问题 - 并在发生此类错误时停在违规行上?
感谢您的帮助。
答案 0 :(得分:6)
发生崩溃时,在Xcode(Run - > Debugger)中打开调试器。这样应该有3到4个窗格:
在左上方窗格(“堆栈跟踪”)中,选择最上面的非灰色行。
(注意:有时堆栈跟踪只能找到内部函数,因为在运行循环中触发了错误的内存管理。尝试构建 - >构建和分析以首先消除所有潜在的内存管理错误。)
答案 1 :(得分:2)
您可以启用NSZombies see here,我找到了一个很好的方法来查看实际问题的位置,即在打开调试器的情况下运行和调试程序。
这样当程序停止执行时会更频繁地显示程序崩溃时正在执行的行。
答案 2 :(得分:2)
我写了一篇博客,告诉你如何使用一些编译器开关来帮助你找到崩溃,这些崩溃是在完成对象之前释放对象的结果。
http://loufranco.com/blog/files/debugging-memory-iphone.html
构建和分析是可以的,但不如scan-build(它基于它)。安装说明如下:
http://loufranco.com/blog/files/scan-build-better-than-build-analyze.html