Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用Swift和lldb设置符号断点大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用 Swift时如何在lldb中设置符号断点?例如,有时我使用:

(lldb) b set -F '-[UIView(AdditionalLayoutSupport) updateConsTraintsIfNeeded]'

但这不再有效:

我也试过了

(lldb) b set -F 'UIView.updateConsTraintsIfNeeded()'
(lldb) b set -F 'UIView.updateConsTraintsIfNeeded'

但没有爱.我想这个问题归结为lldb在使用Swift时认为是“完全限定的@L_197_1@名”.文档说:

斯威夫特怎么样?

解决方法

当lldb为任何更高级的匹配断点(包括-F)设置断点时,它需要知道目标语言,因为它的匹配类型取决于它.认情况下,lldb选择当前帧的语言,但您可以覆盖它.因此,例如,当您在Swift框架中停止时,要打破ObjC符号,请执行以下操作:

(lldb) break set -F '-[UIView(AdditionalLayoutSupport) updateConsTraintsIfNeeded]' -L objc
Breakpoint 3: where = UIKit`-[UIView(AdditionalLayoutSupport) updateConsTraintsIfNeeded],address = 0x0000000100963acc

或者您可以使用-n break选项,该选项不会尝试理解它匹配的符号,而只是在符号名称中对该字符串进行广泛搜索.

注意,在这种情况下,你需要打破ObjC符号,而不是它在Swift中出现的方式,因为快速的一侧实际上只是一个垫片进入objc,并没有真正的快速侧符号可以挂钩.

大佬总结

以上是大佬教程为你收集整理的使用Swift和lldb设置符号断点全部内容,希望文章能够帮你解决使用Swift和lldb设置符号断点所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。