11

自从迁移到 Xcode 9 后,我在从 Simulator 上的断点恢复时观察到了一个奇怪的行为。

我的应用程序大量使用了多个线程,并且在不同线程的代码中设置了一些断点。一旦应用程序在断点处停止然后恢复(在不同的断点处重复几次),它最终会永远冻结,这看起来像是主线程上的死锁:

  • UI 没有响应(但是播放了一些 UI 动画)并且调用堆栈显示__ulock_wait在主线程上。

在此处输入图像描述

同时,其他后台线程显示各种操作,例如日志机制 (CocoaLumberjack)、下载图片 (Alamofire) 等。在连接到 Xcode 的设备或以前版本的 Xcode 上的相同断点上进行测试时,不会发生这种情况。我还测试了应用程序中使用的许多 POD 演示应用程序之一的行为,结果相同。

所描述的行为将调试体验带到了令人讨厌的水平,甚至破坏了完全调试代码的某些部分的可能性。任何人都可以确认类似的,不受欢迎的行为吗?

4

0 回答 0