Xcode的“编辑摘要格式”功能的文档在哪里?

时间:2019-02-25 16:25:19

标签: xcode lldb

如果将表达式添加到Xcode调试器的左侧面板,则可以从其弹出菜单中选择一个标记为Edit Summary Format...的选项。

这将弹出Set Summary Format for type XXX弹出框,其中XXX是表达式的类型。

在Xcode帮助的View variables in the debug area页的View variables部分中,我找到了与该功能最接近的文档:

  

编辑变量的摘要格式...在弹出窗口中,输入有效的LLDB表达式,然后单击“完成”。此表达式将覆盖默认格式器,并用于为该类型的所有变量创建摘要。

好,但是弹出框的占位符文本提到$VAR,这似乎是以摘要格式输入的有效内容-但lldb不接受!因此,我怀疑这部分文档实际上并不准确。

此功能的其余文档在哪里?

2 个答案:

答案 0 :(得分:3)

当Xcode使用gdb作为其调试器时,以及gdb对数据格式化程序的任何内置支持之前,都发明了这种摘要格式。它只有Xcode才了解,并且主要出于遗留原因进行维护。

Xcode不再支持gdb,而改用lldb。 lldb拥有自己的数据格式化系统:

https://lldb.llvm.org/varformats.html

它的优点是它将应用于Xcode的“变量”视图,使用lldb的SB API编写的任何命令以及所有显示值的lldb命令行命令(例如exprframe var )。

您可以按照〜/ .lldbinit文件中上面的链接中的说明定义格式化程序,它们将同时应用于Xcode调试会话和命令行lldb会话(应该有理由使用命令行lldb。)为了便于维护,我创建了一个.lldb目录,将格式化程序放在诸如formatters.lldb之类的文件中,然后在我的.lldbinit中执行:

command source ~/.lldb/formatters.lldb

这样,当我处理它们时,我可以独立地获取格式化程序中的资源,而不必担心.lldbinit还在做什么。

答案 1 :(得分:0)

根据我的经验,Xcode 11不支持“〜/ .lldbinit”文件。并且“编辑摘要”的格式非常随机。例如,如果您的结构具有“小时”,“分钟”,“第二” Int字段,则以下“编辑摘要”无效:

%hour%:%minute%:%second%
%hour%%minute%%secondsecond%

但这是:

%hour%':%minute%':%second%

但是您得到以下结果:“ 5':35':25”