ブレークポイント関連
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 # 終了