1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C言語 GDBの基本的な使い方

Last updated at Posted at 2025-06-16

ブレークポイント関連
b(break)
用途: ブレークポイントを設定し、プログラムの一時停止地点を指定する。

使い方:

b function_name:関数の先頭にブレークポイントを設定

b filename.c:line_number:ファイルの特定行に設定

disable / enable
用途: ブレークポイントの一時的な無効化 / 再有効化

使い方:

disable 1:1番のブレークポイントを無効化

enable 1:1番のブレークポイントを有効化

delete
用途: ブレークポイントの削除

使い方:

delete:すべて削除

delete 1:1番のブレークポイントのみ削除

watch
用途: 特定の変数の変更を監視。値が変わると自動停止。

使い方: watch x

▶️ 実行制御
c(continue)
用途: 実行を再開し、次のブレークポイントまたは終了まで続行

使い方: c

n(next)
用途: 次のソース行へ進む(関数呼び出しには入らない)

使い方: n

s(step)
用途: 次のソース行へ進む(関数呼び出しがあれば中に入る)

使い方: s

run
用途: プログラムの開始

使い方:

run:引数なしで開始

run arg1 arg2:引数を指定して開始

quit / q
用途: gdbを終了

使い方: q または quit

🔍 コードと変数の確認
l(list)
用途: ソースコードの表示

使い方:

l:現在の位置の前後10行

l main:main関数の付近

l 42:42行目付近

p(print)
用途: 変数や式の値を表示

使い方:

p x:変数 x の値を表示

p x + 1:式の評価結果を表示

p *ptr:ポインタの指す値を表示

set
用途: 実行中の変数の値を変更

使い方: set var x = 10

🧠 スタックと関数の確認
bt(backtrace)
用途: 関数呼び出しの履歴(スタックトレース)を表示

使い方: bt

f(frame)
用途: スタックフレームの切り替え(過去の関数呼び出しの状態を見る)

使い方:

f 0:現在のフレーム

f 1:1つ前の関数呼び出し

info 系コマンド
用途: 内部状態の確認に使うサブコマンド群

例:

info breakpoints:ブレークポイント一覧

info locals:ローカル変数

info args:関数引数

info registers:レジスタの状態(C言語の低レベルデバッグで使用)

📁 ソース管理
directory
用途: ソースファイルの検索パスを追加

使い方: directory /path/to/source/files

📝 補足操作
補完機能:Tabキーでコマンドの補完が可能

コマンド履歴:上下矢印キーで過去の入力履歴をたどれる

典型的なgdbの操作例

gdb ./a.out                   # 実行ファイルを指定して起動
(gdb) directory ./src         # ソースのディレクトリを追加
(gdb) b main                  # main関数にブレークポイント
(gdb) run                     # プログラムを開始
(gdb) n                       # ステップ実行(next)
(gdb) p var                   # 変数の値を確認
(gdb) bt                      # スタックトレース表示
(gdb) quit                    # 終了
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?