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