iOS 开启僵尸调试模式
2015-05-28 19:48
357 查看
1、为什么会使用NSZombieEnabled?
应用调试可能会收到类似 Thread 1: Program received signal:"EXC_BAD_ACCESS 这样的错误提示信息,这样的信息通常是内存操作错误引起,例如你对已释放的对象发送消息时就会出现,再如release 的对象再release,release 那些autorelease 的对象等
当设置NSZombieEnabled环境变量后,一个对象销毁时会被转化为_NSZombie,设置NSZombieEnabled后,当你向一个已经释放的对象发送消息,这个对象就不会向之前那样Crash或者产生一个难以理解的行为,而是放出一个错误消息,然后以一种可预测的可以产生debug断点的方式消失,
因此我们就可以找到具体或者大概是哪个对象被错误的释放了。
2、如何设置为NSZombieEnabled模式?
方法一:Product ->Scheme-> Edit Scheme-> Arguments->Environment
Variables->点击"加号", 将 NSZombieEnabled 参数加到Environment Variables 窗口中, 后面的数值写YES
应用调试可能会收到类似 Thread 1: Program received signal:"EXC_BAD_ACCESS 这样的错误提示信息,这样的信息通常是内存操作错误引起,例如你对已释放的对象发送消息时就会出现,再如release 的对象再release,release 那些autorelease 的对象等
当设置NSZombieEnabled环境变量后,一个对象销毁时会被转化为_NSZombie,设置NSZombieEnabled后,当你向一个已经释放的对象发送消息,这个对象就不会向之前那样Crash或者产生一个难以理解的行为,而是放出一个错误消息,然后以一种可预测的可以产生debug断点的方式消失,
因此我们就可以找到具体或者大概是哪个对象被错误的释放了。
2、如何设置为NSZombieEnabled模式?
方法一:Product ->Scheme-> Edit Scheme-> Arguments->Environment
Variables->点击"加号", 将 NSZombieEnabled 参数加到Environment Variables 窗口中, 后面的数值写YES
相关文章推荐
- iOS中消息框提示的出现与自动消失
- iOS绘图-线条旋转锯齿问题
- 学习IOS开发1
- IOS多网卡抓包
- 编译IOS下 libpcap1.7.2
- IOS高级编程之三:IOS 多线程编程
- iOS7应用开发入门经典(第5版)读书笔记(二)
- iOS - 工具函数
- iOS 蓝牙4.0收发数据 报Error Domain=CBErrorDomain Code=0 这个错
- IOS或者安桌调用WEB页面数据
- ios播放视频demo
- ios中运行时机制
- IOS框架和服务
- iOS动画效果和实现
- ios实现断点下载
- IOS深浅拷贝的深入分析
- iOS中清理缓存的实现
- ios中的block
- ios枚举
- 网易新闻iOS版使用的开源组件