Next: , Previous: , Up: Emacs下でのデバッガーの実行   [Contents][Index]


28.6.2 デバッガーの操作

GUD interactionバッファーは、デバッガーサブプロセスにテキストコマンドを送ったり、それの出力を記録するのに使用されるEmacsバッファーです。これはM-x gud-gdbや、 GUDの開始にリストされた他のコマンドで使用される、デバッガーとやりとりするための基本的なインターフェースです。 M-x gdbコマンドは、ブレークポイント、スタックフレーム、その他のデバッガーの状態の様相を制御する、追加の特別なバッファーにより、この機能を拡張します(GDBのグラフィカルインターフェースを参照してください)。

GUD interactionはShellモードの変種を使用するので、Shellモードで定義されたEmacsコマンドが利用可能です(Shellモードを参照してください)。ほとんどのデバッガーコマンドにたいして補完(補完を参照してください)が利用可能で、それらを繰り返すのに、通常のShellモードのヒストリーコマンドを使うことができます。 GUD interactionバッファーで使用できる特別なコマンドについては、GUDのコマンド を参照してください。

プログラムをデバッグすると、Emacsは関連するソースファイルをEmacsバッファーにvisitして、カレント実行行には左フリンジに矢印が表示されます(テキスト端末では最初の2列に‘=>’の矢印が表示されます)。そのようなバッファーでのポイントの移動は、矢印を移動しません。これらのソースファイルの編集はできますが、行の挿入や削除により矢印の位置は失われることに注意してください。なぜならEmacsには編集されたソース行が、デバッガーサブプロセスから報告されるどの行に対応するか、知る手立てがないからです。この情報を更新するには通常、プログラムのリコンパイルと再実行が必要です。

GUD Tooltipモードは、GUDにツールチップサポートを追加するグローバルなマイナーモードです。このモードに切り替えるには、M-x gud-tooltip-modeとタイプします。このモードはデフォルトで無効になっています。有効にした場合、変数、関数、マクロ(識別子として総称される)にマウスポインターを移動すると、それらの値がツールチップで表示されます(ツールチップを参照)。値を表示したい式の上にマウスポインターを置くだけでは値が表示されない場合は、マウスでその式をドラッグしてマークし、マウスポインターをそのマークされた領域内に置いたままにすることにより、より明示的にEmacsに指示することができます。かわりにマウスをドラッグして識別子または式をマークしてから、マウスをマークした領域から離すと、式の値がツールチップに表示されます。GUD Tooltipモードは、GUD interactionバッファー、およびgud-tooltip-modesにリストされたメジャーモードの、すべてのソースバッファーで効果があります。変数gud-tooltip-echo-areaが非nilの場合、またはツールチップモードがオフの場合は、ツールチップではなくエコーエリアに値が表示されます。

M-x gud-gdbでGUD Tooltipモードを使用する場合、GDBにより表示される式の値は、マクロを展開する場合があり、これはデバッグされているプログラムに副作用をもたらすかもしれません。この理由により、gud-gdbではツールチップの使用は無効になっています。M-x gdbインターフェースを使用する場合、この問題は発生しません。なぜなら副作用を避ける特別なコードがあるからです。さらにプログラムが実行されていないときに、識別子に関連付けられたマクロの定義を表示することもできます。