2

查看 WWDC2013 LLDB 调试会话后,我想为我的 NSManagedObject 子类添加一个自定义类型格式化程序。您可以通过在调试器中键入来执行此操作

type summary -add MyClass --summary-string "${var._name}"

这有效,但仅适用于变量,而不适用于方法,因此适用于属性。我也尝试通过 valobj.GetChildMemberWithName 使用 python 脚本,但没有成功。

如何在 LLDB 上的 NSManagedObject 子类上显示属性?

更多信息: http: //lldb.llvm.org/varformats.html

4

1 回答 1

3

长话短说,当您意识到 ${var.foo} 语法仅适用于 ivars 时。不为方法。不适用于属性(它们是方法,给予或接受语法糖)。

我一直在考虑以字符串摘要格式运行表达式的语法。它看起来像 ${expr:[$var selector]} 或 ${expr:3+$var}

缺少这一点,目前您的解决方法是使用 Python,并使用 SBFrame.EvaluateExpression 命令。LLDB 源代码和网站上有 Python 格式化程序的示例,您可以将其用作起点。

于 2013-09-25T17:52:52.367 回答