Next: , Up: GDB Graphical Interface   [Contents][Index]


27.6.5.1 GDBのユーザーインターフェースのレイアウト

変数gdb-many-windowsnil(デフォルト)の場合、M-x gdbは通常GUD interactionバッファーだけを表示します。しかしgdb-show-mainが非nilの場合、2つのウィンドウで開始します。その場合、1つはGUD interactionバッファーを表示して、もう一方はデバッグするプログラムのmain関数のソースを表示します。

gdb-many-windowsが非nilの場合、M-x gdbは以下のフレームレイアウトを表示します。

+--------------------------------+--------------------------------+
|   GUD interaction buffer       |   Locals/Registers buffer      |
|--------------------------------+--------------------------------+
|   Primary Source buffer        |   I/O buffer for debugged pgm  |
|--------------------------------+--------------------------------+
|   Stack buffer                 |   Breakpoints/Threads buffer   |
+--------------------------------+--------------------------------+

上のいずれかにもとづきウィンドウレイアウトをカスタマイズして、gdb-save-window-configurationを使用してそのレイアウトをファイルに保存できます。そのレイアウトは後からgdb-load-window-configurationを使用してロードすることで戻すことができます(内部的にはEmacsはウィンドウレイアウトのかわりにウィンドウ構成という用語を使用する)。gdb-default-window-configuration-fileをカスタマイズすることで、gdb-many-windowsが使用するデフォルトレイアウトにカスタムレイアウトをセットできます。これが絶対ファイル名でなければ、GDBはgdb-window-configuration-directoryの配下でファイルを探します。gdb-window-configuration-directoryのデフォルトはuser-emacs-directoryです(Find Initを参照)。

ウィンドウのレイアウトを変更した場合には、M-x gdb-restore-windowsとタイプして、デフォルトのレイアウトをリストアできます。複数ウィンドウレイアウトと、GUD interactionバッファーとソースファイルだけの単純なレイアウトを切り替えるには、M-x gdb-many-windowsとタイプしてください。

ウィンドウを複雑にセットアップをしていて、gdb-many-windowsがそれを混乱させるのを望まない場合は、別のフレーム内でM-x gdbを呼び出すほうがよいでしょう。その場合は、元のフレームのウィンドウのアレンジに影響はありません。テキスト端末で作業する場合は、GDBセッションに別のフレームを使用すれば、各ウィンドウにたいするスクリーン資源がもっとも活用される可能性があるので、特に便利になり得ます。同一フレーム上でのGDB開始を選択する場合には、gdb-restore-window-configuration-after-quitを非nilにセットすることを考慮してください。その場合には、GDBのquit後に元のレイアウトがリストアされるでしょう。tなら常にリストア、if-gdb-many-windowsならgdb-many-windowsが非nilのときだけリストア、if-gdb-show-mainならgdb-show-mainが非nilのときだけリストアされます。

同じフレームまたは異なるフレームに、GDBに関連した追加のバッファーを表示するように指定できます。M-x gdb-display-buffertype-bufferまたはM-x gdb-frame-buffertype-bufferとタイプして、望むバッファーを選択します。ここでbuffertypeは‘breakpoints’のような、該当するバッファータイプです。‘GUD’メニューの、サブメニュー‘GDB-Windows’または‘GDB-Frames’により、メニューバーから同じことができます。

デフォルトではGDBはソースファイルを表示するために最大で1つのウィンドウを使用します。gdb-max-source-window-countをカスタマイズして、より多くのウィンドウを使用することができます。gdb-display-source-buffer-actionをカスタマイズして、GDBがソースファイルを表示する方法を制御することもできます。

デバッグを終えたらC-x kでGUD interactionバッファーをkillすれば、このセッションでの関連するすべてのバッファーをkillできます。しかしEmacsでソースコードの編集とリコンパイル終えて、さらにデバッグを続けたいときは、これを行う必要はありません。実行を再開すると、GDBは自動的に新しい実行ファイルを見つけます。GUD interactionバッファーを残しておけば、シェルヒストリー、同様にGDBブレークポイントを残すことができる利点があります。最近編集したソースファイルのブレークポイントが、正しい場所にあるかチェックする必要があります。