如何追踪僵尸对象崩溃?

问题描述:

我在我的iOS应用程序中发生了一些有线崩溃,并且它不是100%可重现的。从崩溃日志中我可以看到无法识别的选择器(属性访问器)被发送到不正确类型的对象(很可能是僵尸)。无论如何,我可以用XCode来查看我是否试图访问僵尸对象?如何追踪僵尸对象崩溃?

谢谢。

+0

可以更具体。 – ziggear

有两种方法。 1.转到XCode左侧的断点部分,向下看,可以看到添加异常断点的选项。 2.单击菜单栏>产品>方案>编辑计划 选择“诊断”选项卡,然后单击“启用僵尸对象”

希望它能帮助:)

+0

要清楚,你可能想要做这两件事。 –

有几种方法。您可以通过在当前构建方案的运行项目的诊断选项卡中将“启用僵尸对象”复选框设置为true来打开僵尸。

您可以在仪器工具中的应用程序上运行僵尸仪器(从工程菜单中选择“配置文件”,然后在出现的对话框中选择内存组仪器,然后查找“僵尸”仪器。真的只是开启仪器的分配工具

当你使用任一种方法打开僵尸监视时,系统不再释放被释放的对象,而是用一个特殊的签名来标记它们是一个僵尸那么下一次当你试图引用一个时,你会得到一个直接的,非常具体的崩溃,系统仍然可以告诉它是什么样的对象,它成为僵尸之前,仪器,你甚至可以告诉你的程序在哪里它是分配。