式の値を出力します。
format |
GDB モード: 式を出力する書式を指定します。次のいずれかの値を使用します。 x 値のビットを整数とみなし、整数を 16 進で出力します。 d 整数を符号付き 10 進で出力します。 u 整数を符号なし 10 進で出力します。 o 整数を 8 進で出力します。 t 整数を 2 進で出力します。文字 t は two を表します。 a 16 進の絶対アドレスとして、また最も近い先行シンボルからのオフセットアドレスとして出力します。 c 整数とみなし、文字定数で出力します。 f 値のビットを浮動小数点数とみなし、典型的な浮動小数点構文を使用して出力します。 |
expr |
出力する式。 式は、プログラムが記述されている言語で有効な式です。 デバッガーは、式の標準言語セマンティクスを複製しようと試みます。 式には、あいまいな式を特定できる修飾子やチェックマークを含めることができます。例えば、a.cxx と b.cxx にファイルレベル変数 x が含まれている場合、"a.cxx"x を使用して、a.cxx に変数 x を指定します。同じ構文を使用して、オブジェクト階層を指定できます。 IDB モード: カンマで複数の式を区切ります。 C/C++ カンマ演算子を含む式を出力するには、式を括弧で囲む必要があります。 |
radix |
IDB モード: x 値のビットを整数とみなし、整数を 16 進で出力します。 d 整数を符号付き 10 進で出力します。 o 整数を 8 進で出力します。 b 整数を 2 進で出力します。 |
filename |
IDB モード: 出力する式を含むファイルの名前。 |
printable_type |
IDB モード: デバッグ情報を持つユーザー定義の型。 |
このコマンドは、式の値を出力します。式やすべてのローカル変数を出力できます。print コマンドを使用して、型キャスト、ポインターの逆参照、複数の変数、定数、デバッグしているプログラムの言語で許容される演算子などを含む複雑な式を評価することもできます。
配列に対して、特定のセルを指定しない場合、デバッガーは配列中のすべてのセルを出力します。
GDB モード:
print コマンドの出力の基数を選択するには、set output-radix x コマンド (x は 8、10 または 16) を使用します。
IDB モード:
$hexints 変数、$decints 変数、または $octints 変数を使用して、print コマンドの出力の基数を選択します。永続的に基数を変更しない場合は、printx、printd、printo、printb コマンドを使用して、それぞれ 16 進、10 進、8 進、2 進ベースの書式で式を出力します。
符号付き文字のみ文字列として出力できます。
次のような C++ プログラムの宣言を例に考えます。
GDB モード:
(idb)
list 59,+2
59 const unsigned int biggestCount = 10;
60 static Moon *biggestMoons[biggestCount]; IDB モード:
(idb)
list 59:2
59 const unsigned int biggestCount = 10;
60 static Moon *biggestMoons[biggestCount]; 次の例は、print コマンドを使用して、文字列ではない配列を表示します。
GDB モード:
(idb)
print biggestMoons
$4 = {0x8067998, 0x8067cb0, 0x80679f0, 0x80678e8, 0x8067730, 0x8067940, 0x8068020, 0x8067f18, 0x8067c58, 0x8067f70} IDB モード:
(idb)
print biggestMoons
[0] = 0x8067998,[1] = 0x8067cb0,[2] = 0x80679f0,[3] = 0x80678e8,[4] = 0x8067730,[5] = 0x8067940,[6] = 0x8068020,[7] = 0x8067f18,[8] = 0x8067c58,[9] = 0x8067f70 次の例は、配列の個々の値を出力する方法を示しています。
GDB モード:
(idb) print biggestMoons[3] $7 = (Moon *) 0x80678e8 (idb) print *biggestMoons[3] $8 = {<Planet> = {<HeavenlyBody> = {_name = 0x805a514 "Io", _innerNeighbor = 0x0, _outerNeighbor = 0x8067940, _firstSatellite = 0x0, _lastSatellite = 0x0}, <Orbit> = {_primary = 0x8067890, _distance = 422, _name = 0x8067918 "Jupiter 1"}}, _radius = 1815}
IDB モード:
(idb) print biggestMoons[3] 0x80678e8 (idb) print *biggestMoons[3] class Moon { _radius = 1815; _name = 0x805a514="Io"; // Planet::HeavenlyBody クラス _innerNeighbor = 0x0; // Planet::HeavenlyBody クラス _outerNeighbor = 0x8067940; // Planet::HeavenlyBody クラス _firstSatellite = 0x0; // Planet::HeavenlyBody クラス _lastSatellite = 0x0; // Planet::HeavenlyBody クラス _primary = 0x8067890; // Planet::Orbit クラス _distance = 422; // Planet::Orbit クラス _name = 0x8067918="Jupiter 1"; // Planet::Orbit クラス