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

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


当前回答

我在排除EXC_BAD_ACCESS故障时遇到了同样的问题,并且很难找到Xcode 4.2 (iOS5 SDK的最新版本)的设置。苹果一直在移动东西,设置也不再是以前的样子了。

幸运的是,我找到了它,它适用于设备,而不仅仅是模拟器。你需要在Xcode中打开Product菜单,选择Edit scheme,然后选择Diagnostics选项卡。这里有“启用僵尸对象”。一旦选择和运行调试器将指向你的双释放对象!享受吧!

简而言之

Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects

其他回答

NSZombieEnabled用于调试BAD_ACCESS,

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

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

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

在Xcode 4.5.2 goto Product -> Edit Scheme ->和在Diagnostics选项卡下选中Objective C和Enable Zombie Objects之间的复选框,然后单击OK

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

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

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

在XCODE(4.3)下一个播放按钮:)(运行)

选择:编辑方案

系统弹出方案管理窗口

单击Arguments选项卡

你应该看到:1-启动时传递的参数 2-环境变量

在(2-环境变量)的位置 名称:NSZombieEnabled 价值:是的

这就完成了....