ブレークポイントとは、一時的にプログラムの実行を停止し、コントロールを dbx に渡す場所のことです。バグが存在するのではないかと思われるプログラム領域にブレークポイントを設定します。プログラムがクラッシュした場合、クラッシュが発生した個所をつきとめ、その部分の直前のコードにブレークポイントを設定します。
プログラムがブレークポイントで停止したとき、プログラムの状態と変数の値を調べることができます。dbx では、さまざまな種類のブレークポイントを設定できます (「Control+C によってプロセスを停止する」を参照)。
もっとも単純なブレークポイントは、停止ブレークポイントです。停止ブレークポイントを使用すれば、関数や手続きの中で停止させることができます。たとえば、main 関数が呼び出されたときに停止させる方法は次のとおりです。
(dbx) stop in main (2) stop in main |
stop in コマンドの詳細については、「関数に stop ブレークポイントを設定する」および 「stop コマンド」を参照してください。
また、特定のソースコード行で停止するようにブレークポイントを設定することもできます。たとえば、ソースファイル t.c の 13 行目で停止させる方法は次のとおりです。
(dbx) stop at t.c:13 (3) stop at “t.c”:13 |
stop at コマンドの詳細については、「ソースコードの特定の行に stop ブレークポイントを設定する」および 「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"; |