解决EXC_BAD_ACCESS

 网上有一些关于这个问题的解决办法,但是多数说得不清楚,我结合自己的实践,描述一下具体的步骤。

1.

    在xcode的Groups & Files / Executables文件夹中,双击,选择Arguments,选择下面一栏,点“+”号,添加四个变量,名字分别为:NSZombieEnabled、MallocStackLogging、NSDebugEnabled、MallocStackLoggingNoCompact,value都填YES。

2.

    运行程序如果出现exc_bad_access,控制台提示信息会显示类似如下的信息:

2011-12-14 13:44:18.300 AProject[4009:207] *** -[CFString class]: message sent to deallocated instance 0x5e463b0

   这时,在控制台输入shell malloc_history 4009 0x5e463b0。这里的4009就是上面的提示信息里的4009,表示进程号,0x5e463b0就是上面的0x5e463b0,表示出错的变量地址。

   按回车,控制台会输出一些信息,有些是以 ALLOC或FREE开头的,这些是内存请求或释放的记录,包含发送给这些对象的消息。出错一般在最后一个这样的信息,以ALLOC或MALLOC开头,找到最后一个属于自己写的消息,问题就是这个消息了。这样就可以定位到哪一行代码出错了。

   主要参考文章:http://blog.sina.com.cn/s/blog_6cffce770100ub98.html

by zqzhuang

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值