4

次のような LLDB エイリアス ps を作成したい

 ps foo

になる

 print [self foo]

私は LLDB トーク (iTunes の WWDC セッション 321) を見てきましたが、それに基づいて、それを行うためのエイリアスは次のようになります。

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) 

私は何が欠けていますか?

4

1 に答える 1

6

引数 (%1、%2 など) は式のエイリアスとして機能しないようです。代わりに正規表現を使用する回避策があります。

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

上記の正規表現のエイリアス ps を作成します。

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

ただし、これはデバッグ セッションが終了するまで続きます。次のデバッグ セッションのためにもう一度入力する必要があります。デバッグ セッションを通じて ps コマンドを持続させたい場合は、 ~/.lldbinit ファイルに保存する必要があります (存在しない場合は作成します)。

正規表現コマンドの詳細については、 llvm ブログを参照してください。

于 2012-08-30T10:50:44.873 に答える