個人的にエディタはviを使用しているので、Emacsは普段使用していないのですが、デバッグ作業においてはEmacs + gdbで行う方が断然効率が良いので、操作方法は抑えておいて損はないです。
Emacs + gdbでのデバッグ方法
- コマンド「emacs -nw」でEmacsを起動します。
オプション「nw」で新しくウィンドウを生成せずに同じターミナル内でEmacsを起動しています。 - コマンド「Esc + x gdb」でgdbを起動します。
「Esc + x」でコマンド入力モードへ切り替わります。 - コマンド「gdb ファイル名」でデバッグする実行ファイル名を指定します。
「a.out」がデバッグを実行するファイル名となります。 - コマンド「b main」でブレイクポイントを指定します。
ブレイクポイントの指定は「b 行番号」または「break 行番号」でもOKです。 - コマンド「r」で指定したブレークポイントまでプログラムを実行します。
r:runの略。 - ブレイクポイントまで処理を進めたら「n」コマンドで、次行へ処理を進めてみましょう。
n:nextの略。左記画面では9行目で処理が止まっている状態となります。nextコマンドは他の関数へはジャンプしません。 - 今度は次のステップまで処理を進めて見ましょう。
s:stepの略。stepコマンドは他の関数へもジャンプします。 - コマンド「print i」で変数iの内容を確認してみましょう。
- コマンド「c」で残りのステップを最後まで一気に実行します。
c:continueの略 - コマンド「q」でgdbを終了します。
q:quitの略。 - コマンド「Ctrl + x + c」でEmacsを終了します。