iPhone-调试EXC\u坏访问崩溃

iPhone-调试EXC\u坏访问崩溃,iphone,cocoa,cocoa-touch,xcode,Iphone,Cocoa,Cocoa Touch,Xcode,调试应用程序时,我时常在Xcode上看到以下错误: 程序收到信号:“EXC\U坏访问” 调试器不会在有问题的行上停止。事实上,调试器只是向我显示了一个包含大量汇编语言代码的页面,仅此而已 我必须有超自然的能力来找出问题的症结所在 有没有办法强迫Xcode给我更多的“营养”错误消息——可以详细说明问题——并在出现此类错误时停止攻击 感谢您的帮助。您可以启用NSZombies,我发现了一种查看实际问题所在的好方法,就是在调试器打开的情况下运行和调试程序 这样,当程序停止执行它的频率更高时,就会显示程

调试应用程序时,我时常在Xcode上看到以下错误:

程序收到信号:“EXC\U坏访问”

调试器不会在有问题的行上停止。事实上,调试器只是向我显示了一个包含大量汇编语言代码的页面,仅此而已

我必须有超自然的能力来找出问题的症结所在

有没有办法强迫Xcode给我更多的“营养”错误消息——可以详细说明问题——并在出现此类错误时停止攻击

感谢您的帮助。

您可以启用NSZombies,我发现了一种查看实际问题所在的好方法,就是在调试器打开的情况下运行和调试程序


这样,当程序停止执行它的频率更高时,就会显示程序崩溃时正在执行的行。

当崩溃发生时,在Xcode中打开调试器(运行->调试器)。应该有3到4个这样的窗格:

在左上窗格(“堆栈跟踪”)中,选择非灰色的最顶层行


(注意:有时堆栈跟踪只能找到内部函数,因为在运行循环中触发了错误的内存管理。请尝试构建->构建并分析,以首先消除所有潜在的内存管理错误。)

我写了一篇博客,告诉你如何使用一些编译器开关,这些开关有助于在你处理完对象之前发现由于释放对象而导致的崩溃

构建和分析是可以的,但不如扫描构建(它是基于扫描构建的)。安装说明如下所示:


谢谢。我已启用此功能,但未看到任何打开的执行。错误消息已从EXC_BAD_ACCESS更改为…-[CALayer retain]:消息已发送到解除分配的实例0x182200。。。但我不明白这有什么帮助,因为我的代码中没有关于这个对象的线索。。。我有很多加莱耶。。。这是控制台上打印的唯一一行。如果您打开了调试器,您应该能够看到堆栈跟踪,这将提供更多信息