Sun Studio 12: dbx コマンドによるデバッグ

ブレークポイントイベント仕様

ブレークポイントとは、アクションが発生する位置であり、その位置でプログラムは実行を停止します。次に、ブレークポイントイベントに対するイベント仕様を説明します。

in function

関数が入力され、最初の行が実行される直前。先行ログ後の最初の実行可能コードは、実際のブレークポイントの位置として使用されます。この行は、局所変数を初期化する行になることがあります。C++ のコンストラクターの場合、すべてのベースクラスのコンストラクターの実行後に実行されます。-instr 修飾子が使用される場合 (-instr参照) は、関数の最初の命令が実行される直前です。function 仕様は、仮パラメータを含むことができるため、多重定義関数名、またはテンプレートインスタンスの指定に役立ちます。たとえば、次のようにします。


 stop in mumble(int, float, struct Node *)

注 –

in function-in function 修飾子とを混同しないでください。


at [filename: ]line_number

指定の行が実行される直前。filename を指定した場合は、指定ファイルの指定の行が実行される直前。ファイル名には、ソースファイル名またはオブジェクトファイル名を指定します。引用符は不要ですが、ファイル名に特殊文字が含まれる場合は、必要な場合もあります。指定の行がテンプレートコードに含まれる場合、ブレークポイントは、そのテンプレートのすべてのインスタンス上に置かれます。

at address_expression

指定のアドレスの指示が実行される直前。このイベントは stopi コマンド (stopi コマンド」参照) または -instr イベント修飾子 (-instr参照) のみ利用可能です。

infunction function

function と名付けられたすべての多重定義関数、およびテンプレートインスタンスのすべてに対し、in function と同じ働きをします。

inmember function inmethod function

すべてのクラスの function と名付けられたメンバー関数に対し、in function と同じ働きをします。

inclass classname [-recurse | -norecurse]

classname のベースではなく、classname のメンバーであるすべてのメンバー関数に対し、in function と同じ働きをします。-norecurse はデフォルトです。-recurse が指定された場合、基底クラスが含まれます。

inobject object-expression [-recurse | -norecurse]

object-expression に指定されているアドレスのオブジェクトを呼び出したメンバー関数が呼び出されているとき。stop inobject ox は次のコードとほとんど同じ働きをしますが、inclass と異なり、動的な ox のベースが含まれます。 -recurse はデフォルトです。-norecurse が指定された場合、基底クラスが含まれます。


stop inclass dynamic_type(ox) -if this==ox