iOS调试Bug方式之——NSZombieEnabled(僵尸模式)
2013-10-30 16:42
344 查看
NSZombieEnabled变量用来调试与内存有关的问题,跟踪对象的释放过程。启用了NSZombieEnabled的话,它会用一个僵尸来替换默认的dealloc实现,也就是在引用计数降到0时,该僵尸实现会将该对象转换成僵尸对象。僵尸对象的作用是在你向它发送消息时,它会显示一段日志并自动跳入调试器。
所以,当在应用中启用NSZombie而不是让应用直接崩溃掉时,一个错误的内存访问就会变成一条无法识别的消息发送给僵尸对象。僵尸对象会显示接受到得信息,然后跳入调试器,这样你就可以查看到底是哪里出了问题。
可以在Xcode的scheme页面中设置NSZombieEnabled环境变量。点击Product——>Edit Scheme打开该页面,然后勾选Enable Zombie Objects 复选框。
如图:
僵尸在ARC出现以前作用不大。但自从有了ARC,如果你在对象的所有权方面比较注意,那么通常不会碰到与内存相关的崩溃。
所以,当在应用中启用NSZombie而不是让应用直接崩溃掉时,一个错误的内存访问就会变成一条无法识别的消息发送给僵尸对象。僵尸对象会显示接受到得信息,然后跳入调试器,这样你就可以查看到底是哪里出了问题。
可以在Xcode的scheme页面中设置NSZombieEnabled环境变量。点击Product——>Edit Scheme打开该页面,然后勾选Enable Zombie Objects 复选框。
如图:
僵尸在ARC出现以前作用不大。但自从有了ARC,如果你在对象的所有权方面比较注意,那么通常不会碰到与内存相关的崩溃。
相关文章推荐
- IOS开发(46)之设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 一步步调试解决iOS内存泄漏
- ios中的动画
- iOS 中view label button textField 随机颜色
- 越狱iOS设备利用itms-services协议,实现Safari一键安装IPA
- IOS之动画
- iOS7 side menu new design
- iOS基础篇——详解三字符组(三字符序列)
- nagios
- iOS开发篇——非运行状态(应用启动场景)介绍
- IOS内存nil与release的区别
- ios 内存使用陷阱 和imageNamed 、imageWithContentsOfFile:
- 关于倒计时
- Documentation_block_deadline-iosched.txt
- iOS内存暴增问题追查与使用陷阱
- iOS常用的开源类库
- 中国车牌
- IOS学习--performSelectorOnMainThread
- Mac ios模拟器应用目录
- iOS7 SDK新特性