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

印刷ビューの終了

更新: 2015 年 1 月
 
 

関数へのブレークポイントの設定

stop in コマンドを使用して、関数にブレークポイントを設定できます。

(dbx) stop in function

関数内ブレークポイントは、プロシージャまたは関数の最初のソース行の先頭でプログラムの実行を中断します。

    dbx は次の状況を除いて、参照されている関数を特定できるはずです。

  • 名前のみで、オーバーロードした関数を参照する場合

  • 先頭に ` が付く関数を参照する場合

  • リンカー名 (C++ でのマングル名) で関数が参照されている。この場合、dbx は、名前の前に # が付けられていれば、名前を受け付けます。詳細については、リンカー名を参照してください。

次の宣言を考えてみましょう。

int foo(double);
int foo(int);
int bar();
class x {
   int bar();
};

非メンバー関数で停止するには、次のコマンドでグローバル foo(int) にブレークポイントを設定します。

stop in foo(int)

メンバー関数にブレークポイントを設定するには:

stop in x::bar()

次のコマンドでは、dbx でグローバル関数 foo(int) またはグローバル関数 foo(double) のどちらを意味しているのかを判断できないため、明確にするためにオーバーロードしたメニューを表示させることができます。

stop in foo

次のように入力すると:

stop in `bar

dbx は、ユーザーがグローバル関数 bar() と、メンバー関数 bar() のどちらを意味しているのかを判断することができないため、オーバーロードしたメニューを表示します。


注 -  unique_member など、メンバー名が一意の場合、stop in unique_member を使用すれば十分です。メンバー名が一意でない場合は、stop in コマンドを使用して、意図するメンバーを指定するためのオーバーロードメニューに応答することができます。

関数内イベントの指定の詳細については、in イベント指定を参照してください。