Next: Convenience Vars, Previous: Print Settings, Up: Data
print
コマンドにより表示された値は、
GDBの
値ヒストリに保存されます。
これによりユーザは、
これらの値をほかの式の中で参照することができます。
値は、
シンボル・テーブルが
(例えば、
file
コマンドやsymbol-file
コマンドにより)
再読み込みされるか破棄されるまで、
維持されます。
シンボル・テーブルが変更されると、
値ヒストリが破棄されるのは、
その中の値が、
シンボル・テーブル内で定義されている型を参照しているかもしれないからです。
表示される値はヒストリ番号を与えられ、
この番号によって参照することができます。
この番号は1から始まる連続した整数です。
print
コマンドは、
値に割り当てられたヒストリ番号を、
値の前に‘$num = ’という形で表示します。
ここで、
numがそのヒストリ番号です。
値ヒストリの中の任意の値を参照するには、
‘$’に続けてヒストリ番号を指定します。
print
コマンドが出力に付加するラベルは、
ユーザにこのことを知らせるためのものです。
$
単体では、
ヒストリ内の最も新しい値を参照し、
$$
はその1つ前の値を参照します。
$$
nは、
最新のものから数えてn番目の値を参照します。
$$2
は$$
の1つ前の値を参照し、
$$1
は$$
と同一、
$$0
は$
と同一です。
例えば、 ユーザがたった今、 構造体へのポインタを表示し、 今度はその構造体の内容を見たいと考えているとしましょう。 この場合は、
p *$
を実行すれば十分です。
また、
連結された構造体があり、
そのメンバのnext
が次の構造体を指すポインタであるとすると、
次の構造体の内容を表示するには、
p *$.next
とします。
このように連結された構造体を次々に表示するには、 このコマンドを繰り返し実行すればよく、 それは<RET>キーによって可能です。
このヒストリは、
式ではなく、
値を記録するという点に注意してください。
x
の値が4のときに、
以下のコマンドを実行すると、
print
コマンドによって値ヒストリに記録される値は、
x
の値が変化したにもかかわらず4のままです。
print x set x=5
show values
show values
がヒストリを変更しないという点にあります。
show values
nshow values +
show values
nを繰り返し実行するのに<RET>キーを押すことは、
‘show values +’を実行するのと全く同じ結果をもたらします。