iOS 异常EXC_BAD_ACCESS

iOS开发中出现异常是免不了的。今天就说说EXC_BAD_ACCESS。

1设置环境变量NSZombieEnabled ,MallocStackLogging,如图:

product->Edit Scheme

iOS 一场EXC_BAD_ACCESS - AA - 小老虎的博客
再次运行,就会发现output窗口多出提示信息。

最后大家记得把环境变量NSZombieEnabled,MallocStackLogging删除或设置为NO,因为它们会使得内存不会被释放.

 2 设置全局断点。

进入断点窗口

选择底部的“+”, 单击Add Symbolic Breakpoint..., 输入-[NSException raise],然后按Done键。

iOS 一场EXC_BAD_ACCESS - AA - 小老虎的博客

 其次,再按照上面的步骤添加另外一个全局断点objc_exception_throw。

3.重写object的respondsToSelector方法

 

#ifdef _FOR_DEBUG_  
-(BOOL) respondsToSelector:(SEL)aSelector {  
    printf("SELECTOR: %s\n", [NSStringFromSelector(aSelector) UTF8String]);  
    return [super respondsToSelector:aSelector];  
}  
#endif  

你需要在每个object的.m或者.mm文件中加入上面代码,并且在 other c flags中加入-D _FOR_DEBUG_(记住请只在Debug Configuration下加入此标记)。这样当你程序崩溃时,Xcode的console上就会准确地记录了最后运行的object的方法。

4.

shell malloc_history <pid> <address>"


 

参考文章:http://blog.sina.com.cn/s/blog_876a2c9901016ezh.html

                  http://mobile.51cto.com/iphone-279455.htm

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值