这只是关于新的Xcode 4.1,特别是在Lion上运行的。如何在工具中启用NSZombie?它不再像在Xcode 4.0中那样在启动配置下的(i)图标中进行分配。也没有一个叫做僵尸的图书馆条目。
当然,问题是我不能退回到Xcode4.0,因为它拒绝在Lion下运行,所以我陷入了困境!有没有其他使用Lion的前沿开发人员,比我更有经验,可以帮助挖掘出这一点?谢谢。-Ric
发布于 2011-08-13 03:17:38
关于我自己的问题,我从苹果得到了一个非常有用的答案。它是逐字记录的-
ME:关于如何使用Xcode 4.1.1和/或Instruments在设备上测试这些难处理的释放对象,有没有更新?
苹果:首先,上面在苹果论坛上显示的黑客已经被操作系统的内部变化所取代,即僵尸设置现在由CF完成。您可以使用以下代码强制启用僵尸:
外部空_CFEnableZombies(空);
int main(int argc,char **argv) { _CFEnableZombies();
... rest of your main ...}
重要提示:_CFEnableZombies函数是私有的,因此您甚至不需要考虑将此代码放入生产应用程序中。但是,这不是秘密;您可以通过查看Lion的Darwin开放源码来了解它是如何实现的。
http://www.opensource.apple.com/source/CF/CF-635/CFRuntime.c
如果你这样做,你的应用程序将停止(与断点异常)时,你的消息僵尸,无论你如何运行它。因此,您可以使用分配工具在Instruments中运行它,并获得僵尸检测和分配跟踪。
请注意,当向僵尸发送消息时,系统会打印如下内容:
*-:消息发送到已释放的实例“
这不会出现在Instruments控制台区域中;您必须使用Xcode管理器(或iPCU)才能查看它。
分享和享受
奎因“爱斯基摩人”Apple开发者关系、开发者技术支持、核心操作系统/硬件
我:希望这对你们中的一些人在这种情况下是有用的信息。
发布于 2011-07-23 11:57:00
它是一种独特的乐器:

发布于 2011-08-02 01:49:10
还有另一种在设备上运行NSZombie的方法,但这是通过XCode 4而不是仪器来完成的。
要在设备上运行NSZombie,请打开您的XCode项目并单击顶部菜单项“产品”,然后按住alt并单击“运行”。这将打开一个单独的窗口,在该窗口的底部您将看到“环境变量”。点击"+“并输入"NSZombieEnabled”作为名称,输入"YES“作为值。
https://stackoverflow.com/questions/6797944
复制相似问题