2011-04-20 69 views
0

我在内存管理中遇到了一些问题,然后尝试使用intrument工具修复它。如何使用NSZombieEnabled oninterment Xcode 3.2.5

基础上mark j video on you tube

有关intrument使用NSZombieEnabled,我试着做这样的。问题是我从来没有找到一个复选框来在我的乐器中设置NSZombieEnabled激活。在这种情况下,我使用xcode 3.2.5,仍然在IOS 4.2上。

这是从显示NSZombieEnabled没有一个复选框仪器截图激活: instrument screenshot

我做错了什么? 帮我请

谢谢

回答

0

尝试运行您的模拟器应用程序,看看你在工具选项。你可以参考this教程,看看它是如何在XCode中3.2完成或您可以参阅接受的答案在this线程的XCode 4

0

为什么不安装新的Xcode 4?在那里你可以很容易地在Scheme的Arguments for Debug选项卡下设置Scheme中的EnvironmentVariables。

要检查它实际上是设置我使用此代码...

if(
     getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled") 
     ) { 
     NSLog(@"--------------------------------------->NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!"); 
    } 
+0

代码必须执行什么方法? – 2011-04-20 07:18:13

+0

任何地方,我把它放在开始的某个地方,所有我的其他调试输出开始之前,我可能会忽略它... – user387184 2011-04-21 19:47:20

0

有一个简单的方法,使NSZombie如果你是通过执行涉及XCode的第4版以下简单步骤:

请点击名称为Product choose - > edit scheme - > arguments选项卡的方案下拉条,然后在环境变量列中添加NSZombieEnabled,在值列中添加YES ...现在您已经通过使NSZombie在程序中找到错误来完成。

当你运行你的应用程序,你会得到一个错误信息在应用程序崩溃设定NSZombie状态启用,但最初使NSZombie之前,你可能会发现很难找出在自动释放池什么也正是错误的,就像死机,目前使用objective-c,BAD_ACCESS错误等gdb中断...通过启用NSZombie,你可以找到什么是正确的问题,如不正确的释放,试图重新访问,或不正确的释放内存等。错误可能是以下种类:

-[ExampleProgramViewController alertView:didDismissWithButtonIndex:]: message sent to deallocated instance 0x7068f70 
相关问题