20.2.3. GDB でのプログラムコードの活用
GDB デバッガーがプログラムに割り当てられたら、複数のコマンドを使用して、プログラムの実行を制御できます。
前提条件
- GDB がシステムにインストールされている
必要なデバッグ情報を利用できる状態にしている。
- プログラムはコンパイルされ、デバッグ情報で構築されている。
- 関連する debuginfo パッケージがインストールされている。
- GDB がデバッグするプログラムに割り当てられている
コードを活用するための GDB コマンド
r
(run)-
プログラムの実行を開始します。引数を指定して
run
を実行すると、プログラムが通常起動しているかのように、指定した引数が実行可能ファイルに渡されます。通常、ユーザーはブレークポイントの設定後にこのコマンドを実行します。 start
-
プログラムの実行を開始してメイン機能の開始時に停止します。引数を指定して
start
を実行すると、プログラムが通常起動しているかのように、指定した引数が実行可能ファイルに渡されます。
c
(continue)現在の状態からプログラムの実行を継続します。プログラムの実行は、以下のいずれかが True になるまで継続します。
- ブレークポイントに到達した場合
- 指定の条件を満たした場合
- プログラムがシグナルを受信する場合
- エラーが発生した場合
- プログラムが終了する場合
n
(next)このコマンドのもう 1 つの既知の名前は、
step over
です。現在のソースファイルでコードが次の行に到達するまで、現在の状態からプログラムの実行を続行します。プログラムの実行は、以下のいずれかが True になるまで継続します。- ブレークポイントに到達した場合
- 指定の条件を満たした場合
- プログラムがシグナルを受信する場合
- エラーが発生した場合
- プログラムが終了する場合
s
(step)-
このコマンドのもう 1 つの既知の名前は、
step into
です。また、step
コマンドは、現在のソースファイル内のコードの連続行ごとに実行を停止することも行います。ただし、実行が 関数呼び出し を含むソース行で停止中の場合には、GDB は、関数呼び出しを入力した後 (実行後ではなく)、実行を停止します。 until
location- location オプションで指定したコードの場所に到達するまで、実行が継続されます。
fini
(finish)プログラムの実行を再開し、実行が関数から戻り値として返された時点で停止します。プログラムの実行は、以下のいずれかが True になるまで継続します。
- ブレークポイントに到達した場合
- 指定の条件を満たした場合
- プログラムがシグナルを受信する場合
- エラーが発生した場合
- プログラムが終了する場合
q
(quit)- 実行を中断して、GDB を終了します。
関連情報
- 「定義したコードの場所で実行を停止するための GDB ブレークポイントの使用」
- GDB を使用したデバッグ - 4.2 Starting your Program
- GDB を使用したデバッグ - 5.2 Continuing and Stepping