GDB は、GDB がその中に値をしまうことで、あなたが後から参照することが できるようにするための、簡易変数というものをサポートしています。 これらの変数は GDB 全体に存在し; これらはあなたのプログラムの一部ではなく、簡易変数への値の設定は、 あなたのプログラムの実行に対して何も影響を与えません。これを あなたは自由に使うことができます。
簡易変数は、`$' ではじまる名称を持ちます。`$' ではじまる 任意の名称は、既に定義済みのレジスタ名 (see section レジスタ) を除けば、 簡易変数として扱われます。
あなたは、プログラムで変数値を設定する時のように、式による代入を 使うことで簡易変数に値を保存することができます。例えば:
set $foo = *object_ptr
は object_ptr
でポイントされるオブジェクトの
内容値を $foo
に保存することができます。
簡易変数を最初に使った場合、まずそれは生成されます;
しかしその値は、あなたが新しい値を設定するまでは void
値です。
あなたは、いつでも、他の代入を行い、値を変更することができます。
簡易変数には、決まった型がありません。あなたは、簡易変数に対して、 既に設定されている値とは異なった型であったとしても、任意の型の値を 設定することができます。簡易変数は、たとえカレント値がどんな型で あっても式になりえます。
info convenience
簡易変数を利用する一つの方法に、インクリメント用のカウンタや 先に進むポインタとしての活用法があります。例えば:
set $i = 0 print bar[$i++]->contents ...RET を入力することで、このコンドを繰り返す。}
ある簡易変数は GDB によって自動的に生成され、便利であろうと思われる値を 持っています。
$_
$_
という変数は `x' コマンドによって最後に調査した
アドレスが自動的に設定されます(see section メモリの調査)。
`x' で調査するためのデフォルトアドレスを供給する他のコマンドも
また、$_
にそのアドレスを設定します;
これらのコマンドには、`info line' と `info breakpoint' も
含みます。
$__
$__
という変数は、`x' コマンドが最後に調査したアドレスで
見つかった値が自動的に設定されます。