print

式の値を出力します。

構文

GDB モード:

print [/format] [expr]

IDB モード:

printradix  expr[,...]
print printable_type

パラメーター

format

GDB モード:

式を出力する書式を指定します。次のいずれかの値を使用します。

x

値のビットを整数とみなし、整数を 16 進で出力します。

d

整数を符号付き 10 進で出力します。

u

整数を符号なし 10 進で出力します。

o

整数を 8 進で出力します。

t

整数を 2 進で出力します。文字 ttwo を表します。

a

16 進の絶対アドレスとして、また最も近い先行シンボルからのオフセットアドレスとして出力します。

c

整数とみなし、文字定数で出力します。

f

値のビットを浮動小数点数とみなし、典型的な浮動小数点構文を使用して出力します。

expr

出力する式。

式は、プログラムが記述されている言語で有効な式です。

デバッガーは、式の標準言語セマンティクスを複製しようと試みます。

式には、あいまいな式を特定できる修飾子やチェックマークを含めることができます。例えば、a.cxxb.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 コマンドの出力の基数を選択します。永続的に基数を変更しない場合は、printxprintdprintoprintb コマンドを使用して、それぞれ 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 クラス 

関連情報


このヘルプトピックについてのフィードバックを送信