日期:2014-05-16  浏览次数:21135 次

关于出现僵尸信号SIGBAT或者EXC_BAD_ACCESS的解决方案
关于出现僵尸信号SIGBAT或者EXC_BAD_ACCESS的解决方案
随着用xcode开发的深入,相信很多同学都对出现SIGBAT或者EXC_BAD_ACCESS的问题,编译是对的,运行时做了某些操作,啪~~就跳到main函数里面了, 然后出现之前的提示, 十分的郁闷, 提示的信息又少。 当程序多的时候怎么找,对吧。
      当然,苹果作为这么大的一个公司,考虑还是挺周全的,下面给大家提供一个方法,会在控制台中输出 出现SIGBAT或者EXC_BAD_ACCESS的原因, 基本90%能解决你的问题。当然,你要会看懂一些英文。好了,废话不多说。
      第一步,


选择 Edit Scheme,然后会出现这个框

 
默认时选择info的, 然后我们选择Arguments,
在Environment Varibles中 添加 NSZombieEnabled YES 最后结果是

然后选择OK, 就大功告成了。

你不信?  呵呵 ,你建立一个工程, 然后给View上加一个button或者其他东西, 在加之前release他, 你编译运行,看看控制台输出了什么。
呵呵 ,第一次发帖。 希望对你们又帮助!
原文:
http://www.devdiv.com/iOS_iPhone-%E5%85%B3%E4%BA%8E%E5%87%BA%E7%8E%B0%E5%83%B5%E5%B0%B8%E4%BF%A1%E5%8F%B7SIGBAT%E6%88%96%E8%80%85EXC_BAD_ACCESS%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88-thread-118126-1-1.html

自己做了一下demo。
1:没有加NSZombieEnabled参数事报下面错误信息(提示很难读懂),xcode错误定位在main.m里面。
storyboardDemo[799:207] -[__NSCFString frame]: unrecognized selector sent to instance 0x6b22250
2:加了该参数后报下面错误信息,xcode错误定位准确定位在出错的代码行上。
-[UIButton superview]: message sent to deallocated instance 0x6a26d60

自己动手试试,共享demo。
1 楼 gypgyp 2012-05-10  
用xcode的菜单:product/profile,弹出窗口中选Zombies,这个可视性好。
2 楼 bengan 2012-05-11  
谢谢楼上的提示