13. GNU Emacs 上での GDB 活用方法

 GNU Emacs を使っている場合、GDB でデバッグしながらプログラムの ソースファイルを見たり (編集したり) できる特別なインタフェースが 活用できます。

 このインタフェースを利用する場合、Emacs の M-x gdb コマンドを 使用して下さい。引数として、デバッグしたい実行可能ファイルを与えます。 このコマンドは、GDB を Emacs のサブプロセスとして起動し、 入出力を、新たに生成した Emacs バッファと接続します。

 Emacs の下で GDB を使う場合、次の2つの事を除けば、普通に GDB を使う 場合と同じです:

 GDB のI/Oバッファに対して、次の特別な Emacs コマンドを使うことができます:
M-s
他のソースラインを実行します。GDB の `step' コマンドと同じです。

M-n
全ての関数コールをスキップして、関数内の次のソースラインを実行します。 GDB の `next' コマンドと同じです。

M-i
単一インストラクションを実行します。GDB の `stepi' コマンドと同じ です。

C-c C-f
選択されているスタックフレームから抜けるまで、処理を実行します。 GDB の `finish' コマンドと同じです。

M-c
プログラムの実行を継続します。GDB の `cont' コマンドと同じです。

M-u
数引数 (GNU Emacs マニュアルの“数引数”をご覧下さい) で示される数のスタックフレームだけ上に移動します。 GDB の `up' コマンドと同じです。

M-d
数引数で示される数のスタックフレームだけ下に移動します。 GDB の `down' コマンドと同じです。
 任意のソースファイル上で C-x SPC (gdb-break) という Emacs コマンドを使用すると、GDB はその位置のソースライン上に ブレークポイントを設定します。

 Emacs において Emacs バッファとして普通に表示されているソースファイルは、 通常の方法で取り込まれたソースファイルです。あなたは、望むのならば、 バッファ上のこれらのファイルを編集できます; しかし、GDB は Emacs と行番号によってコミュニケートしていることを 心に留めておいて下さい。もし、あなたがテキストに行を足したり、 削除したりしたら、GDB が知っている行番号はコード上の属性とは 一致しなくなってしまいます。


目次に戻る