Я не могу заставить этот простой псевдоним LLDB работать - PullRequest
4 голосов
/ 07 октября 2011

Я хочу создать псевдоним LLDB ps, такой, что

 ps foo

становится

 print [self foo]

Я смотрю выступление LLDB (сеанс WWDC 321 в iTunes) иИсходя из этого, похоже, что псевдоним для этого должен быть следующим:

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) 

Чего мне не хватает?

1 Ответ

4 голосов
/ 30 августа 2012

Кажется, аргументы (% 1,% 2 и т. Д.) Не работают с псевдонимами выражения. Вместо этого есть обходной путь с использованием регулярного выражения:

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

Создает псевдоним ps для указанного выше регулярного выражения:

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

Однако это будет продолжаться до окончания сеанса отладки. Вам нужно будет ввести его снова для следующего сеанса отладки. Если вы хотите, чтобы ваша команда ps сохранялась в сеансах отладки, вам нужно сохранить ее в файле ~ / .lldbinit (если она не существует, создайте ее).

См. llvm blog , чтобы узнать больше о команде regex.

...