如何在Xcode中启用NSZombie?

如何在Xcode中启用NSZombie?,xcode,nszombie,Xcode,Nszombie,我有一个应用程序正在崩溃,没有错误跟踪。如果进行调试,我可以看到部分情况,但无法确定哪个对象是“僵尸” 有人知道如何在Xcode 4中启用NSZombie吗?只需在可执行文件(NSZombie enabled=YES)上设置一个环境变量,然后正常运行/调试你的应用程序。如果你发送一条僵尸消息,你的应用程序将崩溃/中断到调试器,并NSLog给你一条消息 有关更多信息,请查看此CocoaDev页面: 此外,随着10.6的发布以及Xcode和Instruments的下一个版本,这个过程将变得更加容易。

我有一个应用程序正在崩溃,没有错误跟踪。如果进行调试,我可以看到部分情况,但无法确定哪个对象是“僵尸”


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

只需在可执行文件
(NSZombie enabled=YES)
上设置一个环境变量,然后正常运行/调试你的应用程序。如果你发送一条僵尸消息,你的应用程序将崩溃/中断到调试器,并
NSLog
给你一条消息

有关更多信息,请查看此CocoaDev页面:


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

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

以下是一段视频,并解释了如何使用Instruments和NSZombie查找和修复iOS上的内存崩溃:
环境变量现在是“方案”的一部分

要编辑方案并启用僵尸,请执行以下操作:

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

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

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


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


使用Xcode 6.4:


产品>配置文件将弹出仪器。从面板中选择zombies并开始运行。

在可执行文件的首选项中添加环境变量
NSZombieEnabled
,并将值设置为
YES
以启用僵尸日志记录双击Xcode项目可执行文件组中的可执行文件。此时,单击Arguments(参数)选项卡,在要在environment:部分中设置的
变量中,设置一个名为
NSZombieEnabled
的变量,并将其值设置为
YES

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


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

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


转到,产品->编辑方案->单击运行AppName.app->诊断->启用僵尸对象。

我在排除EXC\u BAD\u访问故障时遇到了同样的问题,很难找到Xcode 4.2(iOS5 SDK附带的最新版本)的设置。苹果不断地移动设备,设置也不再像以前那样了

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

总之

Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
在ur XCODE(4.3)中,播放按钮旁边:)(运行)

选择:编辑方案

“方案管理”窗口将打开

单击Arguments选项卡

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

在(2个环境变量)位置的内部 名称:NSZombieEnabled
价值观:是的


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

NSZombie Enabled用于调试错误访问

从Xcode的schemes表中启用NSZombiesEnabled环境变量

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


这将帮助您了解我想说的内容。

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


完全同意。新的僵尸工具非常好。@jluebbert我想说,努力一点,因为我确实看到了它,运行Xcode 4.02I可以看到僵尸选项,但它是灰色的。你知道它是如何启用的吗?@RahulVyas,我以前从未见过,但你是否启用了垃圾收集功能?我可以看到僵尸在这种情况下毫无意义。我在显示支持[-fobjc-gc]的设置中启用了垃圾收集,但该选项仍然被禁用。实际上,仪器类别中仅启用最后5个选项。还有别的想法吗?还是我做错了什么?@RahulVyas:抱歉,更清楚地说,我认为关闭垃圾收集可能会启用僵尸,因为我认为不可能有一个带垃圾收集的僵尸。如果这还不能解决问题,我建议您阅读Instruments文档(他们对每种仪器都有很好的描述),如果您还没有了解,请在此处发布一个问题以引起更广泛的关注(并最终得到答案)。“但是,只有当当前构建目标是模拟器时,此跟踪模板才可用。”。非常感谢。谢谢,这就是我要找的!在Xcode中,在顶部的“帮助”菜单(右上一个)中搜索“编辑方案”,它将为您指出正确的方向