swift - Swift 的 LLDB : Access computed property or perform function call in type summary Python script

标签 swift lldb

当我使用 Python 脚本创建自定义类型摘要时,可以使用 value.GetChildMemberByName("<child-name>") 访问 ivars 。但是,这不适用于计算属性或函数。

frame variable命令,生成摘要的脚本可以计算当前帧中的表达式(例如 value.GetFrame().EvaluateExpression(value.GetName() + ".description") )

但是,当使用 p <some-expression> 时,这将不起作用。/expression -- <some-expression>由于没有框架,所以上面的语句不会产生任何结果。

使用p时,有没有办法在类型摘要中调用函数或评估计算属性(expression --)?

最佳答案

您可能会使用 SBValue.CreateValueFromExpression 而不是数据格式化程序的框架或目标 EvaluateExpression 调用。

SBValues 会记住定义它们的上下文,并且 SBValue.CreateValueFromExpression 将该上下文传送回表达式计算器。由于变量格式化程序始终接收它们正在操作的 SBValue,因此 CreateValueFromExpression 允许使用一种简单的方法将该上下文转发到新表达式。

关于swift - Swift 的 LLDB : Access computed property or perform function call in type summary Python script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62398294/

相关文章:

单击后 Swift 3 立即隐藏 NSButton

ios - 将标签栏设置为透明但无法将其恢复为默认样式

ios - 当文本下降到 Swift 中的键盘级别时,如何在我的 TextView 中实现自动滚动?

ios - XCode 宏上的符号断点

c - Xcode 返回 (lldb),同时运行 C 应用程序

swift - 使用 Swift 在 Firebase 中获取 Children of Children

ios - UIActivityViewController 从操作中隐藏更多内容

python - 如何使用 lldb 调试 C++ pybind11 模块?

swift - 更改 LLDB 中的 Int 变量值

ios - 如何在运行时使用 lldb expr(调试控制台)设置 UIView 的框架