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

印刷ビューの終了

更新: 2016 年 6 月
 
 

trace コマンド

trace コマンドは、実行したソース行、関数呼び出し、変数の変更を表示します。

トレース速度は dbx trace_speed 環境変数 によって設定します。

dbx が Java モードで、トレースのブレークポイントをネイティブコードで設定する場合は、joff コマンドを使用してネイティブモードに切り替えるか、traceコマンドの前に native を追加します。

dbx が JNI モードで、トレースのブレークポイントを Java コードで設定する場合は、trace コマンドの前に java を追加します。

構文

trace コマンドの一般構文は、次のとおりです。

trace event-specification [modifier]

指定イベントが発生すると、トレースが出力されます。

ネイティブモードの構文

ネイティブモードでは、次の構文が有効です。

trace -file filename

指定したファイル名に全トレース出力を送ります。トレース出力を標準出力に戻すには、filename の代わりに - を使用します。トレース出力は常に filename に追加されます。トレース出力は、dbx がプロンプト表示するたび、またアプリケーションが終了するたびにフラッシュされます。接続後に新たに実行するか実行を再開すると、ファイルが常に再び開きます。

trace step

各ソース行、関数呼び出し、および戻り値をトレースします。

trace next -in function

指定した関数内にいる間、各ソース行をトレースします。

trace at line-number

指定のソース line をトレースします。

trace in function

指定した関数の呼び出しとその関数からの戻り値をトレースします。

trace infile filename

file_name 内の任意の関数の呼び出しとその関数からの戻り値をトレースします。

trace inmember function

function という名前のメンバー関数の呼び出しをトレースします。

trace infunction function

functionという名前の関数が呼び出されるとトレースします。

trace inclass class

class のメンバー関数の呼び出しをトレースします。

trace change variable

variable の変更をトレースします。

ここでは:

filename は、トレース出力の送信先ファイルの名前です。

function は、関数の名前です。

line-number は、ソースコード行の番号です。

class は、クラスの名前です。

variable は、変数の名前です。

ネイティブモードでは、次の修飾子が有効です。

–if condition-expression

condition-expression が true に評価された場合にだけ、指定したイベントが発生します。

–in function

指定したイベントが function で発生した場合にだけ、実行が停止します。

–count number

カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、実行が停止され、カウンタが 0 にリセットされます。

–count infinity

カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。

–temp

イベントの発生時に削除される一時的なブレークポイントを作成します。

–disable

無効状態のブレークポイントを作成します。

–instr

命令レベルのバリエーションを実行します。たとえば、step は命令レベルのステップ実行になり、at では行番号ではなくテキストアドレスを引数として指定します。

–perm

このイベントをデバッグ中は常に有効にします。ブレークポイントなど一部のイベントは、永続的にするのには適していません。delete all は、永続的なハンドラを削除しません。永続的なハンドラを削除するには、delete hid を使用します。

–hidden

status コマンドからイベントを隠ぺいします。一部のインポートモジュールでこれが使用されることがあります。そのようなモジュールを表示するには、status -h を使用します。

–lwp lwp-ID

指定した LWP で指定したイベントが発生した場合にだけ、実行が停止します。

–thread thread-ID

指定したスレッドで指定したイベントが発生した場合にだけ、実行が停止します。

Java モードの構文

Java モードでは、次の構文が有効です。

trace -file filename

すべてのトレース出力を指定した filename に送ります。トレース出力を標準出力に戻すには、filename の代わりに - を使用します。トレース出力は常に filename に追加されます。トレース出力は、dbx がプロンプト表示するたび、またアプリケーションが終了するたびにフラッシュされます。接続後に新たに実行するか実行を再開すると、ファイルが常に再び開きます。

trace at line-number

line-number をトレースします。

trace at filename.line-number

指定したソース filename.line-number をトレースします。

trace in class-name.method-name

class-name. method-name の呼び出しとその戻り値をトレースします。

trace in class-name.method-name([parameters]).

class_name.method_name([parameters]) の呼び出しとその戻り値をトレースします。

trace inmethod class-name.method-name

class-name.method-name という名前のメソッドが呼び出されるとトレースします。

trace inmethod class-name.method-name[(parameters)]

class-name.method-name [(parameters)] という名前のメソッドが呼び出されるとトレースします。

ここでは:

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

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

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

filename は、ファイルの名前です。

line-number は、ソースコード行の番号です。

method-name は、Java メソッドの名前です。

parameters は、メソッドのパラメータです。

Java モードでは、次の修飾子が有効です。

–if condition-expression

condition-expression が true に評価された場合にだけ、指定したイベントが発生し、トレースが出力されます。

–count number

カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、トレースが出力され、カウンタが 0 にリセットされます。

–count infinity

カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。

–temp

イベントが発生してトレースが出力されるときに削除される、一時的なブレークポイントを作成します。-temp-count とともに使用した場合は、カウンタが 0 にリセットされたときだけブレークポイントが削除されます。

–disable

無効状態のブレークポイントを作成します。

全イベントのリストと構文については、イベント指定の設定を参照してください。