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

问题描述 投票:2回答:1

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

这会引发一个名为Set Summary Format for type XXX的popover,其中XXX是表达式的类型。

最接近我发现的这个功能的文档是在Xcode帮助,View variables in the debug area页面,View variables部分:

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

好的,但是popover的占位符文本提到了$VAR,它似乎是以摘要格式输入的有效内容 - 但是lldb不接受这个!所以我很怀疑这些文档,例如它实际上并不准确。

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

xcode lldb
1个回答
3
投票

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

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

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

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

您可以按照〜/ .lldbinit文件中上面链接中的描述定义格式化程序,它们将同时应用于Xcode调试会话和命令行lldb会话(如果您有理由使用命令行lldb)。维护我创建.lldb目录,将格式化程序放在像formatters.lldb这样的文件中,然后在我的.lldbinit中,执行:

command source ~/.lldb/formatters.lldb

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


0
投票

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

%小时%:%分钟%:%第二% %小时%%分钟%%秒%

但这个是:

%小时% ':%分钟%':%第二%

但你得到这个结果:“5':35':25”

© www.soinside.com 2019 - 2024. All rights reserved.