如何调试EXC_BAD_ACCESS
来源:百度文库 编辑:神马文学网 时间:2024/06/30 19:23:22
原文地址:http://www.codza.com/how-to-debug-exc_bad_access-on-iphone
当程序出现“EXC_BAD_ACCESS”时,就像不解风情的妻子对你说:“亲爱的,今晚不行”。这两种情况都是非常不幸的。
让我们先看看EXC_BAD_ACCESS到底是什么。
向已经释放的对象发送消息时会出现EXC_BAD_ACCESS。当出现错误时,通常会调用堆栈信息,特别是在多线程的情况下。
怎样提供一个dummy,当释放一个对象导致程序终止时,在堆栈上告诉我们错误信息,好,下面我们将告诉你怎么去做。
如果你设置了NSZombiEnabled环境变量,当销毁一个对象时,objective的运行时环境会在这个对象后边设置一个dummy,当调用这个对象的方法时,程序会终止,并在堆栈上显示错误信息,下边教你怎么设置NSZombiEnabled
首先,在Xcode中打开executables
![](http://image15.360doc.cn/DownloadImg/2010/10/0816/5829010_1.png)
查看其中内容的信息。
然后,打开信息面板中的Arguments面板
点击左下角的加号,添加变量NSZombiEnabled,并将变量的值设置为YES。
重新运行程序,当过度释放对象时,会在控制台上出现如下信息:
2009-03-30 02:30:36.172 ninjaJumper[3997:20b] *** -[GameLayer retain]: message sent
to deallocated instance 0x59bf670
说明想GameLayer的一个对象发送了retain消息
查看堆栈信息:
如何查看:http://lovebirdegg.javaeye.com/blog/550489
当问题解决后,要将NSZombieEnabled设置为无效,不需要删除变量,将变量前的对号去掉就可以了:
第一次翻译,很烂...
当程序出现“EXC_BAD_ACCESS”时,就像不解风情的妻子对你说:“亲爱的,今晚不行”。这两种情况都是非常不幸的。
让我们先看看EXC_BAD_ACCESS到底是什么。
向已经释放的对象发送消息时会出现EXC_BAD_ACCESS。当出现错误时,通常会调用堆栈信息,特别是在多线程的情况下。
怎样提供一个dummy,当释放一个对象导致程序终止时,在堆栈上告诉我们错误信息,好,下面我们将告诉你怎么去做。
如果你设置了NSZombiEnabled环境变量,当销毁一个对象时,objective的运行时环境会在这个对象后边设置一个dummy,当调用这个对象的方法时,程序会终止,并在堆栈上显示错误信息,下边教你怎么设置NSZombiEnabled
首先,在Xcode中打开executables
![](http://image15.360doc.cn/DownloadImg/2010/10/0816/5829010_1.png)
查看其中内容的信息。
然后,打开信息面板中的Arguments面板
![](http://image15.360doc.cn/DownloadImg/2010/10/0816/5829010_2.png)
点击左下角的加号,添加变量NSZombiEnabled,并将变量的值设置为YES。
重新运行程序,当过度释放对象时,会在控制台上出现如下信息:
2009-03-30 02:30:36.172 ninjaJumper[3997:20b] *** -[GameLayer retain]: message sent
to deallocated instance 0x59bf670
说明想GameLayer的一个对象发送了retain消息
查看堆栈信息:
![](http://image15.360doc.cn/DownloadImg/2010/10/0816/5829010_3.png)
如何查看:http://lovebirdegg.javaeye.com/blog/550489
当问题解决后,要将NSZombieEnabled设置为无效,不需要删除变量,将变量前的对号去掉就可以了:
![](http://image15.360doc.cn/DownloadImg/2010/10/0816/5829010_4.png)
第一次翻译,很烂...
如何调试EXC_BAD_ACCESS
如何调试TC
dev C++中如何调试
Android下如何调试程序
老年丧偶该如何调试心理
老年丧偶该如何调试心理
如何对抗硬件断点之一 调试寄存器
asp.net如何在ie里调试
VC中如何配置可调试项目
教你如何调试思科路由器 - 站长资讯
“高四”如何调试心理?目标与减压
老年丧偶该如何调试心理 -----心灵咖啡 Psycofe
显示器调试
调试nrf905
CSDN技术中心 教您如何创建、调试和安装Eclipse插件
如何调试、排错zen cart网店(出现空白页面)? : Zen Cart 中文支持 : ...
VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏
VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏
android调试程序,如何实现像java一样在控制台中输出结果_Android_手机开发...
北京胜祥之道咨询有限责任公司博客 -- 腾讯博客 - 28-29岁“剩女”该如何调试自己的...
用Bochs调试NTLDR
用strace调试程序
建立vxworks调试环境
VC调试方法