【发布时间】:2013-08-16 13:30:17
【问题描述】:
我在命令行中使用lldb 来调试一个简单的C 程序。
在我工作的机器上,我可以使用制表符补全来输入符号名称。例如,如果我输入“b ma”,然后输入 Tab,它会制表符补全到“b main”。其他功能也是如此。
但是,我无法在笔记本电脑上使用此功能,因为在光标后插入了一个实际的选项卡(ASCII 值 9)。两台机器都运行 10.8.4 并拥有最新的 Xcode。
有什么想法吗?
【问题讨论】:
标签: lldb
我在命令行中使用lldb 来调试一个简单的C 程序。
在我工作的机器上,我可以使用制表符补全来输入符号名称。例如,如果我输入“b ma”,然后输入 Tab,它会制表符补全到“b main”。其他功能也是如此。
但是,我无法在笔记本电脑上使用此功能,因为在光标后插入了一个实际的选项卡(ASCII 值 9)。两台机器都运行 10.8.4 并拥有最新的 Xcode。
有什么想法吗?
【问题讨论】:
标签: lldb
我认为您在两个系统之一上运行 gdb。
lldb 可以完成制表符完成——它可以完成比 gdb 更复杂的制表符完成——但你必须使用 lldb 命令的规范形式才能使其工作。您正在使用的 b 命令是一个别名(正则表达式别名 - 尝试解析断点命令并执行正确操作的正则表达式列表),它没有为 lldb 选项卡完成引擎提供有关上下文的足够信息做任何事。
相反,如果你要这样做
(lldb) br s -n ma<TAB>
它会自动完成。当然,这是breakpoint set --name 的缩写形式。
当您意识到 lldb 可以使用 tab 完成许多不同的参数时,lldb 的聪明才智开始发挥作用——breakpoint set --filefileTab 将完成“file”作为文件名。 breakpoint set --selector 将自动完成选择器名称。 breakpoint set --shlib(将断点限制为仅在特定的 dylib/framework/binary 中设置)将使用 dylibs/frameworks/binaries 列表自动完成。
在未来的某个时候,我们希望使用 b 之类的别名命令来完成制表符,但还没有人有时间解决这个问题。
【讨论】: