如何追踪僵尸对象崩溃?
Posted
技术标签:
【中文标题】如何追踪僵尸对象崩溃?【英文标题】:How to track down zombie object crash? 【发布时间】:2013-12-12 02:39:20 【问题描述】:我的 ios 应用程序发生了一些有线崩溃,并且它不是 100% 可重现的。从崩溃日志中,我可以看到无法识别的选择器(属性访问器)被发送到类型不正确的对象(很可能是僵尸)。 XCode 中是否有我可以用来查看我是否正在尝试访问僵尸对象的方法?
谢谢。
【问题讨论】:
可以更具体。 【参考方案1】:有两种方法。 1.转到XCode左侧的断点部分,向下可以看到添加异常断点的选项。 2. 点击菜单栏 > 产品 > 方案 > 编辑方案 选择“诊断”选项卡并单击“启用僵尸对象”
希望对你有帮助:)
【讨论】:
【参考方案2】:有几种方法。您可以通过在当前构建方案的运行项的诊断选项卡中将“启用僵尸对象”复选框设置为 true 来打开僵尸。
您可以在您的应用程序的 Instruments 工具中运行 Zombies 乐器(从项目菜单中选择“profile”,然后在出现的对话框中,选择 Memory 乐器组,然后查找“Zombies”乐器。这是实际上只是打开了工具的分配工具。
当您使用任一方法打开僵尸监控时,系统将不再释放已释放的对象。相反,它们标有一个特殊的签名,表明它们是僵尸。然后下次你尝试引用一个对象时,你会立即得到一个非常具体的崩溃,并且系统仍然可以判断它在变成僵尸之前是什么类型的对象,并且使用 Instruments 你甚至可以知道它在程序中的哪个位置被分配.
【讨论】:
以上是关于如何追踪僵尸对象崩溃?的主要内容,如果未能解决你的问题,请参考以下文章