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

ネイティブモードの構文

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

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

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