4

の引数()を使用しaliasてを評価するLLDBを作成しようとしています。私は多くの異なる構文の組み合わせを試しましたが、で使用するものはすべて解析に失敗するようです。expression%1alias%1expression

(lldb) version
LLDB-112.1

これは期待どおりに機能します。

(lldb) expr (char*) strdup(argv[1])
(char *) $23 = 0x000000010061c090 "--calc"

alias含むを作成すると%1、例が失敗します。

(lldb) command alias dup expr (char*) strdup(%1)
(lldb) dup argv[1]
error: expected expression
error: 1 errors parsing expression

を使用して引数を評価するLLDBエイリアスを作成するにはどうすればよいexpressionですか?

4

3 に答える 3

3

式の引数を機能させるには、次のように、エイリアスの代わりにコマンドregexを使用します。

command regex dup 's/(.+)/expr (char*) strdup(%1)/'

詳細については、この回答を参照してください。

于 2012-08-30T10:58:58.527 に答える
0

私は%1エイリアスをかなりいじってみましたが、まだ運がありません。これは私が来ることができる最も近いものです、そしてそれは素晴らしいことではありません:

[.lldbinit]

command alias foo expr fooFunction(

次に、デバッガーを実行すると、次のコマンドが実際に入力バーを使用して関数fooFunctionを呼び出します。

(lldb) foo bar)

その比類のない近い親はタイプミスではありません。エイリアスからのオープンパレンと一致するためにそこにある必要があります。

于 2012-05-16T19:54:19.487 に答える
0

コマンドエイリアスdupexprを試してください-(char *)strdup($ 1); その後、あなたが見るでしょう

(lldb) dup "2387987"
(const char [8]) $5 = "2387987" {
  (const char) [0] = '2'
  (const char) [1] = '3'
  (const char) [2] = '8'
  (const char) [3] = '7'
  (const char) [4] = '9'
  (const char) [5] = '8'
  (const char) [6] = '7'
  (const char) [7] = '\0'

lldbビルド153の場合

于 2012-06-28T04:10:31.800 に答える