Swift 全模块优化在调试时会导致任何问题吗?



前段时间(一年?(我们在启用整个模块优化的调试版本中遇到了问题。跟踪时,调试器将跳转到意外的地址。从那以后,我们一直羞于在调试版本中启用此功能。我们确实为我们的发布版本启用了它。

有没有人知道调试以这种方式优化的可执行文件时有任何现有的---甚至是微妙的---问题?

或者,相反,使用此配置是否一切正常?

据我了解,它不应该引起问题,因为整个模块优化主要意味着 Swift 知道它可以直接解决什么(直接_call(,与VTable lookup相比,以及减少昂贵的保留发布周期。

与此类似,一般来说,在编写代码时使用 swift 中的访问控制是一个好主意。 私有化一切,除非你真的需要在外面访问它。在不需要子类等的类上使用final

通常,当您在 Xcode 中进入程序集视图时,是因为正在调用的库上的调试器缺少符号。

调试的一个小提示:我最近在实现TLS套接字时发现了一个错误,只需查找地址和引用的方法,下载源代码并查找缺少或导致问题的内容。

话虽如此,一般来说,它会大大增加调试构建时间,那么在调试中运行-whmo有什么理由吗?

相关内容