如果暂停按钮不提供任何信息,如何调试 iOS 应用程序冻结?

Posted

技术标签:

【中文标题】如果暂停按钮不提供任何信息,如何调试 iOS 应用程序冻结?【英文标题】:How can I debug iOS app freeze if the pause button does not provide any information? 【发布时间】:2018-11-22 07:28:36 【问题描述】:

我遇到了在异常断点中未检测到的应用程序冻结问题。我所有与 UI 相关的代码都在主线程上运行。正如问题My app freezes but no error appears 中所建议的那样,我点击了暂停按钮来检查错误,但无法从中找出任何东西。请帮助我更好地理解。在此处附上我的 xcode 屏幕截图:

【问题讨论】:

最终检查其他线程,尤其是 ConnectionLoader 线程,或者在异常上设置断点。另外,检查问题的代码,隔离它。 无法从中找出任何东西。我可以给出的一个队列是当一个视图控制器弹出并加载下面的视图控制器时发生冻结。 【参考方案1】:

当您的应用冻结时.. 尝试以下操作并解决它

在 Xcode(8 或更高版本)中

    分析代码 - Command+Shift+B Enable Address Sanitizier in Xcode Memory Graph

线程清理器和静态分析

Xcode 通过运行时清理和 Clang 静态分析器的改进,可以更轻松地找到几个新类别的错误。 Thread Sanitizer 将帮助您找到数据竞争和其他并发错误。静态分析器已扩展为搜索可本地化问题、检查可空性和查找 MRR 代码中的内存泄漏。

    编辑方案 - 诊断选项卡 “启用 Thread Sanitizer”复选框 构建并运行 查看所有生成的运行时问题 可以选择在每个问题上中断

【讨论】:

以上是关于如果暂停按钮不提供任何信息,如何调试 iOS 应用程序冻结?的主要内容,如果未能解决你的问题,请参考以下文章

当用户单击主页按钮时暂停 iOS 应用程序游戏

ios模拟器显示黑屏

如何分配 AVPlayer 播放/暂停按钮 iOS?

NSURLSessionDownloadTask 从其他 View ios 恢复和暂停

如何在Windows下暂停和恢复任何外部进程?

Powershell表单 - 使用按钮暂停循环