Oracle® Developer Studio 12.5: dbx コマンドによるデバッグ

印刷ビューの終了

更新: 2016 年 6 月
 
 

print コマンド

ネイティブモードでは、print コマンドは式の値を出力します。Java モードでは、print コマンドは式、局所変数、パラメータの値を出力します。

ネイティブモードの構文

print expression, ...

expression, ... の値を出力します。

print -r expression

継承メンバーを含み、式 expression の値を出力します。

print +r expression

dbx output_inherited_members 環境変数が on に設定されている場合は、継承メンバーを出力しません。

print -d [-r] expression

expression の静的型ではなく動的型を表示します。

print +d [-r] expression

dbx output_dynamic_type 環境変数が on に設定されている場合は、式 expression の動的型を使用しません。

print -s expression

式の中に private 変数または thread-private 変数が含まれる場合に、現在の OpenMP の並列領域の各スレッドの式 expression の値を出力します。

print -S [-r] [-d] expression

静的メンバーを含み、式 expression の値を出力します (C++ のみ)。

print +S [-r] [-d] expression

dbxenv show_static_members 環境変数が on に設定されている場合は、静的メンバーを出力しません (C++ のみ)。

print -p expression

prettyprint 関数を呼び出します。

print +p expression

dbx output_pretty_print 環境変数が on の場合、prettyprint 関数を呼び出しません。

print -L expression

出力オブジェクト expression が 4K を超える場合は、出力を強制実行します。

print +l expression

式が文字列である場合 (char *)、アドレスの出力のみを行い、文字を出力しません。

print -l expression

('Literal') 左側を出力しません。式が文字列である場合 (char *)、アドレスの出力は行わず、文字列内の文字だけを引用符なしで出力します。

print -fformat expression

整数、文字列、浮動小数点の式の形式として format を使用します (オンラインヘルプの format 参照)。

print -Fformat expression

指定の形式を使用しますが、左側 (変数名や式) は出力しません (オンラインヘルプの format 参照)。

print -o expression

expression の値を出力します。これは、序数としての列挙式でなければなりません。ここでは、書式文字列を使用することもできます (-fformat)。非列挙式の場合、このオプションは無視されます。

print —m expression

dbxenv 変数 macro_expandoff に設定されている場合、expression にマクロ展開を適用します。

print +m expression

dbxenv 変数 macro_expandon に設定されている場合、式のマクロ展開をスキップします。

print -- expression

'--' は、フラグ引数の終わりを示します。これは、expression がプラスまたはマイナスで開始できる場合に便利です。スコープ解決の規則については、プログラムスコープを参照してください。

ここでは:

expression は、出力対象の値を持つ式です。

format は、式の出力時に使用する形式です。形式が指定の型に適用しない場合は、形式文字列は無視され、内蔵出力メカニズムが使用されます。

許可されている形式は printf(3S) コマンドで使用されているもののサブセットです。次の制限が適用されます。

  • n 変換できません。

  • フィールド幅または精度に * を使用できません。

  • %<digits>$ 引数を選択できません。

  • 1 つの形式文字列に対して 1 つの変換指定のみが可能です。

    許可されている形式は、次の簡易文法で定義されます。

    FORMAT ::= CHARS % FLAGS WIDTH PREC MOD SPEC CHARS

    CHARS ::= <any character sequence not containing a %>

    | %%

    | <empty>

    | CHARS CHARS

    FLAGS ::= + | - | <space> | # | 0 | <empty>

    WIDTH ::= <decimal_number> | <empty>

    PREC ::= . | . <decimal_number> | <empty>

    MOD ::= h | l | L | ll | <empty>

    SPEC ::= d | i | o | u | x | X | f | e | E | g | G |

    c | wc | s | ws | p

    指定の書式文字列に % を含まない場合は、dbx によって自動的に付加されます。形式文字列がスペース、セミコロン、またはタブを含んでいる場合は、形式文字列全体を二重引用符で囲む必要があります。

Java モードの構文

print expression, ... | ...

expression, ... または識別子 identifier, .... の値を出力します。

print -r expression | identifier

継承メンバーを含み、expression または識別子 identifier の値を出力します。

print +r expression | identifier

dbx output_inherited_members 環境変数が on に設定されている場合は、継承メンバーを出力しません。

print -d [-r] expression | identifier

expression または identifier の、静的型ではなく動的型を表示します。

print +d [-r] expression | identifier

dbx output_dynamic_type 環境変数が on に設定されている場合、expression または identifier の動的型は使用しないでください。

print -- expression | identifier

'--' は、フラグ引数の終わりを示します。これは、expression がプラスまたはマイナスで開始できる場合に便利です。スコープ解決の規則については、プログラムスコープを参照してください。

ここでは:

class-name は、Java クラスの名前です。次のいずれかを使用できます。

  • ピリオド (.) を修飾子として使用したパッケージのパス (test1.extra.T1.Inner など)

  • シャープ記号 (#) が前に付き、スラッシュ (/) とドル記号 ($) を修飾子として使用したフルパス名。たとえば #test1/extra/T1$Inner などです。$ 修飾子を使用する場合は、class-name を引用符で囲みます。

expression は、値を出力する Java 式です。

field-name は、クラス内のフィールド名です。

identifierthis を含む局所変数またはパラメータで、現在のクラスインスタンス変数 (object-name.field-name) またはクラス (静的) 変数 (class-name.field-name) です。

object-name は、Java オブジェクトの名前です。