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

印刷ビューの終了

更新: 2015 年 1 月
 
 

ブレークポイントの設定

ブレークポイントとは、一時的にプログラムの実行を停止して dbx に制御を渡すようにするプログラム内のある場所のことです。バグが存在するのではないかと思われるプログラム領域にブレークポイントを設定します。プログラムがクラッシュした場合、クラッシュが発生した個所をつきとめ、その部分の直前のコードにブレークポイントを設定します。

プログラムがブレークポイントで停止したら、プログラムの状態や変数の値を調べることができます。dbx では、さまざまな種類のブレークポイントを設定できます。(Control+C によってプロセスを停止するを参照)。

もっとも単純なブレークポイントは、停止ブレークポイントです。停止ブレークポイントを設定すると、関数または手続き内で停止させることができます。たとえば、main 関数が呼び出されたときに停止させる方法は次のとおりです。

(dbx) stop in main
(2) stop in main

stop in コマンドの詳細については、関数へのブレークポイントの設定および stop コマンドを参照してください。

また、停止ブレークポイントを設定して、ソースコードの特定の行で停止させることもできます。 たとえば、ソースファイル t.c の 13 行目で停止させる方法は次のとおりです。

(dbx) stop at t.c:13
(3) stop at “t.c”:13

stop at コマンドの詳細については、ソースコードの行へのブレークポイントの設定および stop コマンドを参照してください。

停止させる行は、file コマンドを使用して現在のファイルを設定したあと、list コマンドを使用して停止させる関数のリストを表示することによって特定できます。次に、stop at コマンドを使用してソース行にブレークポイントを設定します。

(dbx) file t.c
(dbx) list main
10    main(int argc, char *argv[])
11    {
12        char *msg = "hello world\n";
13        printit(msg);
14    }
(dbx) stop at 13
(4) stop at “t.c”:13

ブレークポイントで停止したプログラムの実行を続行するには、cont コマンドを使用します (プログラムを継続するおよび cont コマンドを参照)。

現在のすべてのブレークポイントのリストを表示するには、status コマンドを使用します。

(dbx) status
(2) stop in main
(3) stop at "t.c":13

ここでプログラムを実行すれば、最初のブレークポイントでプログラムが停止します。

(dbx) run
...
stopped in main at line 12 in file "t.c"
12        char *msg = "hello world\n";