无法在设备的仪器中找到僵尸

Posted

技术标签:

【中文标题】无法在设备的仪器中找到僵尸【英文标题】:Unable to find Zombie in Instruments for device 【发布时间】:2013-09-06 06:25:00 【问题描述】:

无法在 Instruments for device 中找到 Zombie。

我可以在 Instruments for Simulator 中找到 Zombie,但无法找到设备,由于添加了第三方 api,我的应用只能在设备上运行。

我如何追踪由于"message sent to deallocated instance "

而导致的崩溃原因

我只想找到导致此崩溃的确切实例(或代码行)。

【问题讨论】:

您无法检查设备中的僵尸。***.com/questions/10564018/… 但他们说我必须使用模拟器而不是设备,但我的应用只能在设备上运行 是的。使用异常断点并尝试模拟该崩溃。我也感受到了这样的问题。但你别无选择。 你知道它在哪个屏幕上崩溃了吗?从某种意义上说,你可以模拟崩溃吗? 包含整个崩溃日志。 【参考方案1】:

虽然,当 XCode 返回“Message sent to deallocated instance”错误消息时,它通常也会告诉 Object 是哪个发送了该错误。 无论如何,您可以使用以下内容找到导致错误的确切行:

对 XCode 中的所有异常使用异常断点。 添加异常断点: 1. 转到断点导航器 2. 底部有一个加号。点击它。 3. 您将获得两个选项:添加异常断点...和添加符号断点... 选择异常断点。

【讨论】:

我已启用所有异常断点,但在这种情况下不起作用。 有时可能会发生。在某些情况下,异常断点无济于事。【参考方案2】:

僵尸崩溃的一些原因: 1.控制实例被清除后控制委托响应延迟。 2. 线程内部使用的实例在清除后尝试修改实例。

所以正确处理委托

    在删除视图控制器时将控制委托设为 nil,如下所示:

    - (void)viewDidDisappear:(BOOL)animated
    
        [self.mapView setDelegate:nil];
        [_webView setDelegate:nil];
    
    

【讨论】:

以上是关于无法在设备的仪器中找到僵尸的主要内容,如果未能解决你的问题,请参考以下文章

错误:在 xcode 时间分析器仪器上分析 iOS 应用程序时无法在设备上找到设备的时间戳

仪器无法在 Xcode 4.4 的真实 iOS 设备中运行 GUI 测试脚本

xcode 7.2仪器无法选择目标(设备灰色)

无法在设备上的 iphone 应用程序上运行仪器

从设备上的命令行运行仪器 4.5 时无法启动跟踪

仪器:目标无法运行:已在退出的进程上运行