前一段时间(一年?)我们遇到了启用了whole module optimization的调试版本的问题。跟踪时,调试器将跳转到意外的地址。从那以后,我们一直羞于在我们的调试版本中启用它。我们确实为我们的发布版本启用了它。
是否有人知道任何现有的 - 甚至是微妙的 - 调试以这种方式优化的可执行文件的问题?
或者,相反,使用此配置,一切都能正常工作吗?
答案 0 :(得分:0)
据我所知,它不应该引起问题,因为整个模块优化主要意味着Swift知道它可以直接解决(直线_call
)与VTable lookup
相比以及减少代价保留发布周期。
与此类似,通常在编写代码时在swift中使用访问控制是个好主意。私有化除非你真的需要在外面访问它。对不需要子类化等的类使用final
。
通常在Xcode中输入程序集视图是因为调用库时调试器缺少符号。
调试的小提示:我最近在实现TLS套接字时发现了一个错误,只需查找地址和引用的方法,下载源代码并查找丢失的内容或导致问题。
现在说,一般来说它会大大增加调试构建时间,所以你有没有理由在调试中运行-whmo
?