Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ

when コマンド

when コマンドは、指定したイベントが発生したときに、コマンドを実行します。

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

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

構文

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

when event_specification [modifier]{command; ... }

指定イベントが発生すると、コマンドが実行されます。when コマンドで禁止されているコマンドには次のものがあります。

オプションなしの cont コマンドは無視されます。

ネイティブモードの構文

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

when at line_number { command; }

line_number に到達したら、command を実行します。

when in procedure { command; }

procedure が呼び出されたら、command を実行します。

ここで

line_number は、ソースコード行の番号です。

command は、コマンドの名前です。

procedure は、手続きの名前です。

Java モードの構文

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

when at line_number

ソースの line_number に到達したときにコマンドを実行します。

when at file_name.line_number

file_name. line_number に到達したときにコマンドを実行します。

when in class_name.method_name

class_name. method_name が呼び出されたときにコマンドを実行します。

when in class_name.method_name([parameters])

class_name. method_name([parameters]) が呼び出されたときにコマンドを実行します。

class_name は、Java クラス名で、パッケージのパス (. (ピリオド) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (# 記号で始まり、/ (スラッシュ) や $ 記号を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

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

line_number は、ソースコード行の番号です。

method_name は、Java メソッドの名前です。

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

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

下位レベルのイベントの発生時にコマンドを実行する方法については、wheni コマンド」を参照してください。