符号名称的LLDB选项卡完成

时间:2013-08-14 14:23:23

标签: lldb

我在命令行中使用lldb来调试一个简单的C程序。

在我的工作机器上,我能够使用标签名称的标签完成。例如,如果我输入“b ma”,然后输入 Tab ,它将标签完成为“b main”。其他功能也是如此。

但是,我无法在笔记本电脑上使用此功能,在光标后插入实际标签(ASCII值9)。两台机器都运行10.8.4并拥有最新的Xcode。

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

我认为你正在两个系统中运行gdb。

lldb可以完成标签 - 它可以比gdb做更复杂的标签完成 - 但你必须使用lldb命令的规范形式才能工作。您正在使用的b命令是别名(正则表达式别名 - 尝试解析断点命令并执行正确操作的正则表达式列表),这不会给lldb选项卡完成引擎提供足够的信息关于做任何事情的背景。

相反,如果你要做

(lldb) br s -n ma<TAB>

它会自动完成。当然,这是breakpoint set --name的缩写形式。

当你意识到lldb可以选项卡完成许多不同的参数时,lldb的聪明才会生效 - breakpoint set --file file Tab 将把“file”作为文件名完成。 breakpoint set --selector将自动填充选择器名称。 breakpoint set --shlib(将断点限制为仅在特定的dylib / framework / binary中设置)将使用dylib / frameworks / binaries列表自动完成。

在未来的某个时刻,我们希望使用b这样的别名命令来完成制表工具,但是还没有人有时间处理那个。