我无法使用这个简单的LLDB别名

时间:2011-10-07 16:33:03

标签: iphone ios debugging alias lldb

我想创建一个LLDB别名ps,例如

 ps foo

成为

 print [self foo]

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

command alias ps print [ self %1 ]

但它不起作用。在这里,我给了我的app委托一个简单的“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) 

我错过了什么?

1 个答案:

答案 0 :(得分:4)

似乎参数(%1,%2等)不能用于别名表达式。通过使用正则表达式来解决方法:

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

它为上面的正则表达式创建别名ps:

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

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

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