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

stop コマンド

stop コマンドは、ソースレベルのブレークポイントを設定します。

構文

stop コマンドは、ソースレベルのブレークポイントを設定します。

stop event_specification [modifier]

指定イベントが発生すると、プロセスが停止されます。

ネイティブモードの構文

ネイティブモードで有効な構文の中で重要なものを、いくつか次に示します。これ以外のイベントについては、「イベント指定の設定」を参照してください。

stop [-update]

実行をただちに停止します。when コマンドの本体内でのみ有効です。

stop -noupdate

実行をただちに停止しますが、Oracle Solaris Studio IDE のデバッガウィンドウは更新しません。

stop access mode address_expression [, byte_size_expression]

address_expression で指定したメモリーがアクセスされた場合に、実行を停止します。「特定アドレスへのアクセス時にプログラムを停止する」も参照してください。

stop at line-number

line_number で実行を停止します。「ソースコードの特定の行に stop ブレークポイントを設定する」も参照してください。

stop change variable

variable の値が変更された場合に実行を停止します。

stop cond condition_expression

condition_expression で指定した条件が真になる場合に実行を停止します。

stop in function

function が呼び出されたときに実行を停止します。「関数に stop ブレークポイントを設定する」も参照してください。

stop inclass class_name [-recurse | -norecurse]

C++ のみ: class/struct/union/template のいずれかのクラスのメンバー関数すべてにブレークポイントを設定します。-norecurse はデフォルトです。-recurse が指定された場合、基底クラスが含まれます。「クラスのすべてのメンバー関数にブレークポイントを設定する」も参照してください。

stop infile file_name

file_name 内のいずれかの関数が呼び出された場合、実行を停止します。

stop infunction name

C++ のみ: すべての非メンバー関数 name にブレークポイントを設定します。

stop inmember name

C++ のみ: 次の関数にブレークポイントを設定します。すべてのメンバー関数 name「異なるクラスのメンバー関数にブレークポイントを設定する」を参照。

stop inobject object_expression [-recurse | -norecurse]

C++ のみ: オブジェクト object_expression から呼び出された場合に、クラスおよびそのすべての基底クラスの非静的メソッドへのエントリにブレークポイントを設定します。-recurse はデフォルトです。-norecurse が指定された場合、基底クラスは含まれません。「オブジェクトにブレークポイントを設定する」も参照してください。

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

function は、関数の名前です。

class_name は、C++ の class、struct、union、または template クラスの名前です。

mode はメモリーのアクセス方法を指定します。次の文字 (複数可) で構成されます。

r

指定したアドレスのメモリーが読み取られたことを示します。

w

メモリーへの書き込みが実行されたことを示します。

x

メモリーが実行されたことを示します。

mode には、次を含めることもできます。

a

アクセス後にプロセスを停止します (デフォルト)。

b

アクセス前にプロセスを停止します。

name は、C++ 関数名です。

object_expression は、C++ オブジェクトを示します。

variable は、変数の名前です。

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

-if condition_expression

condition_expression が真の場合にだけ、指定したイベントが 発生します。

-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 モードでは、次の構文が有効です。

stop access mode class_name.field_name

class_name.field_name によって指定されたメモリーがアクセスされた場合、実行を停止します。

stop at line_number

line_number で実行を停止します。

stop at file_name:line_number

file_nameline_number で実行を停止します。

stop change class_name.field_name

class_namefield_name の値が変更された場合に実行を停止します。

stop classload

いずれかのクラスが読み込まれた場合に実行を停止します。

stop classload class_name

class_name が読み込まれた場合に実行を停止します。

stop classunload

いずれかのクラスが読み込み解除された場合に実行を停止します。

stop classunload class_name

class_name が読み込み解除された場合に実行を停止しま す。

stop cond condition_expression

condition_expression で指定した条件が真になる場合に実行を停止します。

stop in class_name.method_name

class_name. method_name に入力され、最初の行が実行される直前に、実行を停止します。パラメータが指定されておらず、メソッドがオーバーロードされている場合は、メソッドのリストが表示されます。

stop in class_name.method_name([parameters])

class_name. method_name に入力され、最初の行が実行される直前に、実行を停止します。

stop inmethod class_name.method_name

class_name.method_name で指定した、すべての非メンバーメソッドでブレークポイントを設定します。

stop inmethod class_name.method_name ([parameters])

class_name.method_name で指定した、すべての非メンバーメソッドでブレークポイントを設定します。

stop throw

Java の例外が投げられた場合に実行を停止します。

stop throw type

type で指定した種類の Java の例外が投げられた場合に実行を停止します。

ここで

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

condition_expression には、任意の式を指定できます。ただし、評価結果が整数型になる必要があります。

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

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

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

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

mode はメモリーのアクセス方法を指定します。次の文字 (複数可) で構成されます。

r

指定したアドレスのメモリーが読み取られたことを示します。

w

メモリーへの書き込みが実行されたことを示します。

mode には、次を含めることもできます。

b

アクセス前にプロセスを停止します。

プログラムカウンタは、問題のある個所を示します。

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

type は、Java の例外の種類です。type には、-unhandled または -unexpected を指定できます。

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

-if condition_expression

condition_expression が真の場合にだけ、指定したイベントが 発生します。

-count number

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

-count infinity

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

-temp

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

-disable

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

マシンレベルのブレークポイントの設定については、stopi コマンド」も参照してください。

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