如何在Xcode中启用NSZombie?

我有一个崩溃的应用程序没有错误跟踪。 如果我debugging,我可以看到发生了什么事情的一部分,但不知道哪个对象是“僵尸”。

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

环境variables现在是“scheme”的一部分。

如果你编辑你想打开僵尸的scheme(在“产品”菜单中,select“编辑scheme”),进入左侧面板中的“运行Foo.app”阶段,对。 然后,您可以将NSZombieEnabled添加到“环境variables”部分,并将该值设置为YES ,如同在Xcode 3中一样。


在Xcode 4.1及以上版本中 ,“运行”阶段的“诊断”标签上的checkbox为“启用僵尸对象”。


用Xcode 6.4

[ 1]

我遇到了与EXC_BAD_ACCESS相同的问题,并且很难findXcode 4.2(iOS5 SDK附带的最新版本)的设置。 苹果不断移动的东西,设置不再是以往的地方。

幸运的是,我发现它,它适用于设备,而不仅仅是模拟器。 您需要打开Xcode中的“产品”菜单,select“编辑scheme”,然后select“诊断”选项卡。 你有“启用僵尸对象”。 一旦select并运行在debugging器将指向你的双释放对象! 请享用!

简而言之

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

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

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

在你的可执行文件(NSZombieEnabled = YES)上设置一个环境variables是一个简单的事情,然后像平常一样运行/debugging你的应用程序。 如果你发送一个僵尸消息,你的应用程序将崩溃/打破debugging器和NSLog的消息。

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

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

产品>configuration文件将popup仪器。 从面板中select僵尸,并坚果。

转到Product – Scheme – 编辑scheme – 参数 – 环境variables set NSZombieEnabled = YES

在这里输入图像描述

在这里输入图像描述

在xcode 4.2中

转到,产品 – >编辑scheme – >点击运行yourappname.app – > Diagonostics – >启用僵尸对象。

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

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

要启用僵尸日志logging,请双击Xcode项目的可执行文件组中的可执行文件。 此时单击Arguments选项卡,然后在Variables to be set in the environment:Variables to be set in the environment:部分中,创build一个名为NSZombieEnabled的variables并将其值设置为YES

在XCode 4.0中:要检测仪器中的NSZombie,请select模拟器作为您的目标(无法检测到设备上的NSZomboe)。 运行仪器(CMD + I)并select“僵尸”追踪模板。 请享用。

在Xcode 4.5.2转到产品 – >编辑scheme – >和在诊断标签下检查目标C和启用僵尸对象之间的checkbox,然后点击确定

在您的可执行文件的首选项中,添加环境variablesNSZombieEnabled并将该值设置为YES

在你的XCODE(4.3)下面播放button:)(运行)

select:编辑scheme

计划pipe理窗口将打开

点击Arguments选项卡

您应该看到:1-在启动2-环境variables上传递的参数

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

它的完成…

NSZombieEnabled用于debuggingBAD_ACCESS,

从Xcode的计划表中启用NSZombiesEnabled环境variables。

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

这个video将帮助你看看我想说什么。