trace コマンドは、実行したソース行、関数呼び出し、変数の変更を表示します。
トレース速度は dbx trace_speed 環境変数 によって設定します。
dbx が Java モードで、トレースのブレークポイントをネイティブコードで設定する場合は、joff コマンドを使用してネイティブモードに切り替えるか、traceコマンドの前に native を追加します。
dbx が JNI モードで、トレースのブレークポイントを Java コードで設定する場合は、trace コマンドの前に java を追加します。
trace コマンドの一般構文は、次のとおりです。
trace event-specification [modifier]
指定イベントが発生すると、トレースが出力されます。
ネイティブモードでは、次の構文が有効です。
指定したファイル名に全トレース出力を送ります。トレース出力を標準出力に戻すには、filename の代わりに - を使用します。トレース出力は常に filename に追加されます。トレース出力は、dbx がプロンプト表示するたび、またアプリケーションが終了するたびにフラッシュされます。接続後に新たに実行するか実行を再開すると、ファイルが常に再び開きます。
各ソース行、関数呼び出し、および戻り値をトレースします。
指定した関数内にいる間、各ソース行をトレースします。
指定のソース line をトレースします。
指定した関数の呼び出しとその関数からの戻り値をトレースします。
file_name 内の任意の関数の呼び出しとその関数からの戻り値をトレースします。
function という名前のメンバー関数の呼び出しをトレースします。
functionという名前の関数が呼び出されるとトレースします。
class のメンバー関数の呼び出しをトレースします。
variable の変更をトレースします。
ここでは:
filename は、トレース出力の送信先ファイルの名前です。
function は、関数の名前です。
line-number は、ソースコード行の番号です。
class は、クラスの名前です。
variable は、変数の名前です。
ネイティブモードでは、次の修飾子が有効です。
condition-expression が true に評価された場合にだけ、指定したイベントが発生します。
指定したイベントが function で発生した場合にだけ、実行が停止します。
カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、実行が停止され、カウンタが 0 にリセットされます。
カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。
イベントの発生時に削除される一時的なブレークポイントを作成します。
無効状態のブレークポイントを作成します。
命令レベルのバリエーションを実行します。たとえば、step は命令レベルのステップ実行になり、at では行番号ではなくテキストアドレスを引数として指定します。
このイベントをデバッグ中は常に有効にします。ブレークポイントなど一部のイベントは、永続的にするのには適していません。delete all は、永続的なハンドラを削除しません。永続的なハンドラを削除するには、delete hid を使用します。
status コマンドからイベントを隠ぺいします。一部のインポートモジュールでこれが使用されることがあります。そのようなモジュールを表示するには、status -h を使用します。
指定した LWP で指定したイベントが発生した場合にだけ、実行が停止します。
指定したスレッドで指定したイベントが発生した場合にだけ、実行が停止します。
Java モードでは、次の構文が有効です。
すべてのトレース出力を指定した filename に送ります。トレース出力を標準出力に戻すには、filename の代わりに - を使用します。トレース出力は常に filename に追加されます。トレース出力は、dbx がプロンプト表示するたび、またアプリケーションが終了するたびにフラッシュされます。接続後に新たに実行するか実行を再開すると、ファイルが常に再び開きます。
line-number をトレースします。
指定したソース filename.line-number をトレースします。
class-name. method-name の呼び出しとその戻り値をトレースします。
class_name.method_name([parameters]) の呼び出しとその戻り値をトレースします。
class-name.method-name という名前のメソッドが呼び出されるとトレースします。
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 モードでは、次の修飾子が有効です。
condition-expression が true に評価された場合にだけ、指定したイベントが発生し、トレースが出力されます。
カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、トレースが出力され、カウンタが 0 にリセットされます。
カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。
イベントが発生してトレースが出力されるときに削除される、一時的なブレークポイントを作成します。-temp を -count とともに使用した場合は、カウンタが 0 にリセットされたときだけブレークポイントが削除されます。
無効状態のブレークポイントを作成します。
全イベントのリストと構文については、イベント指定の設定を参照してください。