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


29.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にはウィンドウテキスト自体のカレント実行行を、2つあるうちのいずれかのおう方法によって視覚的に区切る能力があります。1つ目はフェイスgud-highlight-current-line-faceによって提供される見栄えをもつオーバーレイでその行を表示する方法で、これはユーザーオプションgud-highlight-current-lineが有効な場合に効力をもちます。もう一方はHL Lineモード(カーソルの表示を参照)が導入したオーバーレイを実行行に一時的(後続の編集コマンドによって元の位置にカーソルが戻るまでの間)に移動する方法で、こちらはHL Lineモードが有効な場合に効果があります。

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

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

This page has generated for branch:work/emacs-30_11e7ae3964e192b0e4bcc437a04278ee727e720b, commit:21d1f04ad721643c0229c9b6eb5285cb9fae6b99 to check Japanese translation.