Wil*_*sch 4 iphone debugging alias ios lldb
我想创建一个 LLDB 别名 ps,这样
ps foo
Run Code Online (Sandbox Code Playgroud)
变成
print [self foo]
Run Code Online (Sandbox Code Playgroud)
我一直在观看 LLDB 演讲(iTunes 上的 WWDC 会议 321),基于此,看起来这样做的别名应该是这个:
command alias ps print [ self %1 ]
Run Code Online (Sandbox Code Playgroud)
但它不起作用。在这里,我给了我的应用程序委托一个简单的“计数”方法,它返回一个整数:
(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)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
似乎参数(%1、%2 等)不能作为表达式的别名。有一种解决方法是使用正则表达式:
command regex ps 's/(.+)/print [self %1]/'
Run Code Online (Sandbox Code Playgroud)
它为上面的正则表达式创建了一个别名 ps:
(lldb) ps firstName
print [self firstName]
(NSString *) $1 = 0x06e64e20 @"John"
Run Code Online (Sandbox Code Playgroud)
但是,这将持续到调试会话结束。您必须在下一个调试会话中再次输入它。如果你希望你的 ps 命令在调试会话中持续存在,你必须将它保存在你的 ~/.lldbinit 文件中(如果它不存在,创建一个)。
有关正则表达式命令的更多详细信息,请参阅llvm 博客。