`
bengan
  • 浏览: 206074 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于出现僵尸信号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。
  • 大小: 91.7 KB
  • 大小: 106.6 KB
  • 大小: 105 KB
分享到:
评论
2 楼 bengan 2012-05-11  
谢谢楼上的提示
1 楼 gypgyp 2012-05-10  
用xcode的菜单:product/profile,弹出窗口中选Zombies,这个可视性好。

相关推荐

    查找EXC_BAD_ACCESS的错误代码处

    为了有效地解决问题并提高应用的稳定性,开发者需要掌握一种有效的调试技巧——使用Xcode内置的Instrument工具来定位和修复`EXC_BAD_ACCESS`错误。 #### 二、Instrument工具简介 Instrument是Xcode集成开发环境中...

    ios EXC_BAD_ACCESS错误调试

    在iOS开发中,EXC_BAD_ACCESS错误是一种常见的运行时错误,通常是因为程序尝试访问已被释放的内存地址导致的。当程序尝试访问一个已经释放的对象时,系统就会抛出EXC_BAD_ACCESS错误,这在C语言中通常被理解为使用了...

    iOS内存错误EXC_BAD_ACCESS的解决方法

    在iOS开发中,遇到“EXC_BAD_ACCESS”错误是一个常见的挑战,这种错误通常与内存管理问题有关,尤其是对象的过度释放或访问已被释放的内存。本文将深入探讨如何解决这类问题。 首先,理解“EXC_BAD_ACCESS”错误的...

    如何在xcode里面使用内存泄露查找工具

    6. 当发生内存错误时,比如EXC_BAD_ACCESS,可通过设置环境变量NSZombieEnabled来找出尝试向已经释放的对象发送消息的错误。在Xcode中,可以在运行应用的Schema设置中,将NSZombieEnabled环境变量设置为YES。这允许...

    OC中内存管理的介绍

    2. 野指针:野指针是指向僵尸对象的指针,也就是不可用内存的指针,给野指针发送消息会报错(EXC_BAD_ACCESS)。 3. 空指针:空指针是没有指向任何东西的指针,给空指针发送消息一般不会报错。 内存管理代码规范 ...

    IOS中内存管理那些事

    野指针是指向这些僵尸对象的指针,尝试通过野指针访问内存会引发`EXC_BAD_ACCESS`错误。相反,空指针(nil或NULL)没有指向任何对象,向空指针发送消息不会抛出错误,但在使用前需要确保它们指向有效的对象。 引用...

Global site tag (gtag.js) - Google Analytics