I want to create an LLDB alias ps, such that
ps foo
becomes
print [self foo]
I’ve been watching the LLDB talk (WWDC session 321 on iTunes), and based on that, it looks like the alias to do that should be this one:
command alias ps print [ self %1 ]
but it doesn’t work. Here I’ve given my app delegate a simple “count” method that returns an integer:
(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)
What am I missing?
It seems arguments (%1, %2, etc) doesn’t work to alias an expression. There is a workaround by using a regular expression instead:
It makes an alias ps for the above regular expression:
However this will last till the debug session ends. You’ll have to enter it again for the next debug session. If you want your ps command to persist through debug sessions, you’ll have to save it in your ~/.lldbinit file (if it doesn’t exist, create one).
See llvm blog for more deails about regex command.