iOSBug调试之僵尸模式

1、为什么会使用NSZombieEnabled?

应用调试可能会收到类似 Thread1: Program received signal:"EXC_BAD_ACCESS 这样的错误提示信息,这样的信息通常是内存操作错误引起。

当设置NSZombieEnabled环境变量后,一个对象销毁时会被转化为_NSZombie,设置NSZombieEnabled后,当你向一个已经释放的对象发送消息,这个对象就不会向之前那样Crash或者产生一个难以理解的行为,而是放出一个错误消息,然后以一种可预测的可以产生debug断点的方式消失, 因此我们就可以找到具体或者大概是哪个对象被错误的释放了。

2、如何设置为NSZombieEnabled模式?

方法一:Product -> Edit Scheme-> Arguments, 然后将点击”加号”, 将 NSZombieEnabled 参数加到Environment Variables 窗口中, 后面的数值写上 ”YES”.

方法二: Product -> EditScheme -> Diagnostics 设置窗口中直接勾上Enable ZombieObjects 即可

你可能感兴趣的:(iOSBug调试之僵尸模式)