仪器在僵尸时崩溃

Posted

技术标签:

【中文标题】仪器在僵尸时崩溃【英文标题】:Instruments crashes at zombie 【发布时间】:2015-04-08 18:08:22 【问题描述】:

当我在设备或模拟器上运行应用程序时,我经常在同一行代码中遇到 EXC_BAD_ACCESS,这让我相信存在僵尸。

为了调试此异常,我为方案打开了“Zombie Objects”,并使用 Zombies 模板在 Instruments 中分析应用程序。一旦我到达应用程序中执行异常代码行的位置,应用程序就会在模拟器上崩溃,并且 Instruments 运行会话会因此停止。

在使用 Instruments 的这种方法中我做错了什么吗?

有什么建议吗?

仪器截图: http://tinypic.com/r/2hhzk1f/8

控制台输出为空,但这里是堆栈跟踪: http://tinypic.com/r/xdcrqp/8

【问题讨论】:

仪器崩溃了还是只是您的应用程序崩溃了?预计应用程序将在遇到僵尸时立即停止。 只是应用崩溃了; Instruments 刚刚停止,表明活动的“运行”已经结束 这就是它应该做的。您点击弹出窗口中的小箭头,仪器将向您显示对象的生命周期,直到僵尸引用。 developer.apple.com/library/ios/recipes/… 不幸的是,僵尸从未被标记。一旦应用程序崩溃,运行就会停止,但不会报告僵尸。 tinypic.com/r/2hhzk1f/8 我唯一的箭头是在运行开始时,当我点击它时,弹出框会显示应用程序的名称和“前台运行”。 @matt 很难说。这看起来像僵尸仪器。他只是在第二个选项卡上,这使得它与分配没有区别。 【参考方案1】:

我做了两件事:

为该计划关闭“僵尸对象”; 启动 Instruments on Allocations,停止它,检查右侧窗格中的 Zombies 和 Ref 计数,然后重新启动。

在那之后,在崩溃期间,我在 Instruments 中获得了僵尸信息。

希望对某人有所帮助!

【讨论】:

以上是关于仪器在僵尸时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Xcode iOS 仪器:

使用仪器时应用程序在某些操作上崩溃,如何查找原因?

XCode:仪器有堆栈跟踪吗?

UIActionSheet 访问错误,UIPresentationController 僵尸

此发布调用是不是会导致仪器崩溃?

在 Xamarin Studio 中启用僵尸对象