我想创建一个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)
我错过了什么?
答案 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。