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