when コマンドは、指定したイベントが発生したときに、コマンドを実行します。
dbx が Java モードで、when ブレークポイントをネイティブコードで設定する場合は、joff コマンドを使用してネイティブモードに切り替えるか、when コマンドの前に native を追加します。
dbx が JNI モードで、when ブレークポイントを Java コードで設定する場合は、when コマンドの前に java を追加します。
when コマンドの一般構文は、次のとおりです。
when event-specification [modifier]{command; ... }
指定イベントが発生すると、コマンドが実行されます。when コマンドで禁止されているコマンドには次のものがあります。
attach
debug
next
replay
rerun
restore
run
save
step
オプションなしの cont コマンドは無視されます。
ネイティブモードでは、次の構文が有効です。
line-number に到達したら、command を実行します。
procedure が呼び出されたら、command を実行します。
ここでは:
line-number は、ソースコード行の番号です。
command は、コマンドの名前です。
procedure は、手続きの名前です。
Java モードでは、次の構文が有効です。
ソース line-number に到達したら、コマンドを実行します。
filename.line-number に到達したら、コマンドを実行します。
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 は、メソッドのパラメータです。
全イベントのリストと構文については、イベント指定の設定を参照してください。
指定した下位レベルイベントでコマンドを実行することについては、wheni コマンドを参照してください。