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