Answers:
现在,环境变量已成为“方案”的一部分。
要编辑方案并打开僵尸,请执行以下操作:
在“产品”菜单中,选择“编辑方案”。
转到左侧面板中的“ Run Foo.app”阶段,右侧转到“ Arguments”选项卡。
添加NSZombieEnabled
到“环境变量”部分,并将值设置为YES
,就像在Xcode 3中一样。
在Xcode 4.1及更高版本中,“运行”阶段的“诊断”选项卡上还有一个复选框,用于“启用僵尸对象”。
使用Xcode 6.4:
我在对EXC_BAD_ACCESS进行故障排除时遇到了相同的问题,并且很难用Xcode 4.2(iOS5 SDK附带的最新代码)来查找设置。Apple不断前进,设置已不再是以前的样子。
幸运的是,我已经找到了它并且它适用于设备,而不仅仅是Simulator。您需要在Xcode中打开“产品”菜单,选择“编辑方案”,然后选择“诊断”选项卡。那里有“启用僵尸对象”。选择并在调试器中运行后,您将指向双重释放的对象!请享用!
简而言之
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
产品>配置文件将启动Instruments,然后您应该有一个名为“ Zombies”的“跟踪模板”。但是,仅当当前构建目标是模拟器时,此跟踪模板才可用-如果将目标设置为iOS设备,则该跟踪模板将不可用。
还要注意的另一件事是,乐器库中没有实际的僵尸乐器。僵尸跟踪模板实际上由具有“启用NSZombie检测”启动配置集的“分配”工具组成。
只需在可执行文件上设置一个环境变量(NSZombieEnabled = YES)
,然后像往常一样运行/调试应用程序即可。如果您向僵尸发送消息,则您的应用程序将崩溃/崩溃,并向NSLog
您发送消息。
有关更多信息,请查看此CocoaDev页面:http : //www.cocoadev.com/index.pl? NSZombieEnabled
另外,随着10.6的发行以及Xcode and Instruments的下一版本,该过程将变得更加容易。只是说说而已。=)
这是一个视频和说明,说明如何使用Instruments和NSZombie在iOS上查找和修复内存崩溃:http : //www.markj.net/iphone-memory-debug-nszombie/
从Xcode 3.2.5和Snow Leopard(Mac OS X 10.6)开始,您可以通过Zombies工具运行代码Run > Run with Performance Tool > Zombies
。这样,您就可以在时间轴上查看特定的对象及其保留计数。
在可执行文件的首选项中,添加环境变量NSZombieEnabled
并将其值设置为YES
。
NSZombieEnabled用于调试BAD_ACCESS,
从Xcode的方案表中启用NSZombiesEnabled环境变量。
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
该视频将帮助您了解我要说的话。