デフォルトでは、 GDBはデータの型にしたがって値を表示します。 ときには、 これが望ましくない場合もあります。 例えば、 数値を16進で表示したい場合やポインタを10進で表示したい場合があるでしょう。 あるいは、 メモリ内のある特定のアドレスのデータを文字列や命令として表示させたい場合もあるでしょう。 このようなことをするためには、 値を表示するときに出力フォーマットを指定します。
出力フォーマットの最も単純な使用方法は、
既に評価済みの値の表示方法を指定することです。
これは、
print
コマンドの最初の引数をスラッシュとフォーマット文字で開始することで行います。
サポートされているフォーマット文字は、
以下のとおりです。
x
d
u
o
t
a
(gdb) p/a 0x54320 $3 = 0x54320 <_initialize_vx+396>
c
f
例えば、 プログラム・カウンタの値を16進数で表示する (see Registers) には、 以下を実行してください。
p/x $pc
スラッシュの前にはスペースが必要ではないことに注意してください。 これは、 GDBのコマンド名にはスラッシュを含めることができないからです。
値ヒストリの最後の値を異なる形式で再表示するには、
print
コマンドに対して式を指定せずにフォーマットだけを指定して実行します。
例えば、
`p/x'を実行すると最後の値を16進で再表示します。
[1] 原注:フォーマット文字`b'は使用できません。
フォーマット文字はx
コマンドでも共通して使用されますが、
x
コマンドでは、
`b'はbyteの省略形として使用されているためです。
See Examining memory。