4

我想创建一个 LLDB 别名 ps,这样

 ps foo

变成

 print [self foo]

我一直在观看 LLDB 演讲(iTunes 上的 WWDC session 321),基于此,看起来这样做的别名应该是这个:

command alias ps print [ self %1 ]

但它不起作用。在这里,我为我的应用委托提供了一个简单的“count”方法,该方法返回一个整数:

(lldb) command alias ps print [ self %1 ]
(lldb) ps count
error: invalid operands to binary expression ('AppDelegate *' and 'int')
error: 1 errors parsing expression
(lldb) print [ self count ]
(int) $6 = 2
(lldb) 

我错过了什么?

4

1 回答 1

6

似乎参数(%1、%2 等)无法为表达式设置别名。有一个解决方法是使用正则表达式:

command regex ps 's/(.+)/print [self %1]/'

它为上述正则表达式创建一个别名 ps:

(lldb) ps firstName
print [self firstName]
(NSString *) $1 = 0x06e64e20 @"John"

但是,这将持续到调试会话结束。您必须在下一次调试会话中再次输入它。如果您希望 ps 命令在调试会话中持续存在,则必须将其保存在 ~/.lldbinit 文件中(如果不存在,请创建一个)。

有关 regex 命令的更多信息,请参阅llvm 博客

于 2012-08-30T10:50:44.873 回答