我有一个没有错误跟踪就崩溃的应用程序。如果我调试,我可以看到正在发生的事情的一部分,但不能找出哪个对象正在“僵尸化”。

有人知道如何在Xcode 4中启用NSZombie吗?


当前回答

这是一个简单的问题,在你的可执行文件(NSZombieEnabled = YES)上设置一个环境变量,然后正常运行/调试你的应用。如果你给一个僵尸发送消息,你的应用程序将崩溃/中断到调试器和NSLog消息给你。

欲了解更多信息,请访问CocoaDev页面:http://www.cocoadev.com/index.pl?NSZombieEnabled

而且,随着10.6的发布以及Xcode和Instruments的下一个版本,这个过程将变得更加容易。只是说”。=)

其他回答

NSZombieEnabled用于调试BAD_ACCESS,

在Xcode的scheme表中启用NSZombiesEnabled环境变量。

单击“产品”⇒编辑方案以打开工作表并设置“启用僵尸对象”复选框

这个视频将帮助你理解我想说的。

这是一个简单的问题,在你的可执行文件(NSZombieEnabled = YES)上设置一个环境变量,然后正常运行/调试你的应用。如果你给一个僵尸发送消息,你的应用程序将崩溃/中断到调试器和NSLog消息给你。

欲了解更多信息,请访问CocoaDev页面:http://www.cocoadev.com/index.pl?NSZombieEnabled

而且,随着10.6的发布以及Xcode和Instruments的下一个版本,这个过程将变得更加容易。只是说”。=)

产品>配置文件将启动仪器,然后你应该有一个名为“僵尸”的“跟踪模板”。但是,此跟踪模板仅在当前构建目标是模拟器时可用——如果将目标设置为iOS设备,则不可用。

另一件需要注意的事情是,在乐器库中没有真正的僵尸乐器。僵尸跟踪模板实际上由分配工具和“启用NSZombie检测”启动配置集组成。

从Xcode 3.2.5和Snow Leopard (Mac OS X 10.6)开始,你可以通过僵尸工具运行你的代码:这允许你在时间轴上看到特定的对象及其保留计数。

进入产品-方案-编辑方案-参数-环境变量设置NSZombieEnabled = YES