如何在Xcode中启用NSZombie?

时间:2011-03-22 02:44:16

标签: xcode nszombie

我有一个崩溃但没有错误跟踪的应用。如果我调试,我可以看到正在发生的一部分,但无法弄清楚哪个对象是“僵尸”。

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

15 个答案:

答案 0 :(得分:433)

环境变量现在是“方案”的一部分。

编辑方案并打开僵尸:

  • 在“产品”菜单中,选择“编辑方案”。

  • 转到左侧面板中的“Run Foo.app”阶段和右侧的“Arguments”选项卡。

  • NSZombieEnabled添加到“环境变量”部分,并将值设置为YES,就像在Xcode 3中一样。


在Xcode 4.1及以上版本中,“运行”阶段的“诊断”标签上还有一个复选框,以“启用僵尸对象”。


使用Xcode 6.4:

Screenshot

答案 1 :(得分:141)

我在排除EXC_BAD_ACCESS问题时遇到了同样的问题,并且很难找到Xcode 4.2(iOS5 SDK附带的最新版本)的设置。 Apple继续推动移动设备,设置不再像过去那样。

幸运的是,我找到了它,它适用于设备,而不仅仅是模拟器。您需要打开Xcode中的“产品”菜单,选择“编辑方案”,然后选择“诊断”选项卡。你有“启用僵尸对象”。一旦选中并在调试器中运行,将指向双重释放的对象!享受!

简而言之

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

答案 2 :(得分:43)

产品> Profile将启动Instruments,然后你应该有一个名为“Zombies”的“Trace Template”。但是,此跟踪模板仅在当前构建目标是模拟器时可用 - 如果您将目标设置为iOS设备,则该模板将不可用。

另外需要注意的是仪器库中没有实际的Zombies乐器。僵尸跟踪模板实际上由具有“启用NSZombie检测”启动配置集的分配工具组成。

答案 3 :(得分:24)

在您的可执行文件(NSZombieEnabled = YES)上设置环境变量,然后正常运行/调试您的应用程序是一件简单的事情。如果您向僵尸发送消息,您的应用程序将崩溃/中断调试器和{{1}给你留言。

有关更多信息,请查看此CocoaDev页面:http://www.cocoadev.com/index.pl?NSZombieEnabled

此外,随着10.6和Xcode和Instruments的下一版本的发布,这个过程将变得更加容易。只是说'。 =)

答案 4 :(得分:22)

产品>配置文件将弹出仪器。从面板中选择僵尸并坚持下去。

答案 5 :(得分:16)

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

enter image description here

enter image description here

答案 6 :(得分:12)

在xcode 4.2中

转到,产品 - >编辑方案 - >点击运行yourappname.app - > Diagonostics - >启用Zombie对象。

答案 7 :(得分:11)

这是一个视频和解释如何使用Instruments和NSZombie来查找和修复iOS上的内存崩溃: http://www.markj.net/iphone-memory-debug-nszombie/

答案 8 :(得分:6)

从Xcode 3.2.5和Snow Leopard(Mac OS X 10.6)开始,您可以通过Zombies工具运行代码:Run > Run with Performance Tool > Zombies。这允许您在时间轴上查看特定对象及其保留计数。

答案 9 :(得分:4)

在Xcode 4.5.2中转到产品 - >编辑方案 - >在Diagnostics选项卡下,选中Objective C和Enable Zombie Objects之间的复选框,然后单击OK

答案 10 :(得分:3)

要启用Zombie日志记录,请双击Xcode项目的可执行文件组中的可执行文件。此时单击Arguments选项卡,在Variables to be set in the environment:部分中,创建一个名为NSZombieEnabled的变量,并将其值设置为YES

答案 11 :(得分:3)

在XCode 4.0中:要在Instruments中检测NSZombie,请选择模拟器作为目标(无法在设备上检测NSZomboe)。运行Instruments(CMD + I)并选择“Zombies”跟踪模板。享受。

答案 12 :(得分:2)

在您的可执行文件的首选项中添加环境变量NSZombieEnabled并将值设置为YES

答案 13 :(得分:2)

在你的XCODE(4.3)旁边的播放按钮:)(运行)

选择:编辑方案

方案管理窗口将打开

单击Arguments选项卡

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

里面(2-环境变量)的地方 名称:NSZombieEnabled
价值:是

它的完成......

答案 14 :(得分:1)

NSZombieEnabled用于调试BAD_ACCESS,

从Xcode的方案表中启用NSZombiesEnabled环境变量。

Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box

video会帮助您了解我想说的内容。