我在命令行中使用lldb
来调试一个简单的C程序。
在我的工作机器上,我能够使用标签名称的标签完成。例如,如果我输入“b ma”,然后输入 Tab ,它将标签完成为“b main”。其他功能也是如此。
但是,我无法在笔记本电脑上使用此功能,在光标后插入实际标签(ASCII值9)。两台机器都运行10.8.4并拥有最新的Xcode。
有什么想法吗?
答案 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
这样的别名命令来完成制表工具,但是还没有人有时间处理那个。