Next: , Previous: , Up: Debuggers   [Contents][Index]


27.6.4 GUDのカスタマイズ

起動時にGUDは以下のフックの1つを実行します:
GDBを使用している場合はgdb-mode-hook
DBXを使用している場合はdbx-mode-hook
SDBを使用している場合はsdb-mode-hook
XDBを使用している場合はxdb-mode-hook
Perlのデバッグモードを使用している場合はperldb-mode-hook
PDBを使用している場合はpdb-mode-hook
JDBを使用している場合はjdb-mode-hookを実行します。
Hooksを参照してください。

Lispマクロgud-def(Defining Macros in the Emacs Lisp Reference Manualを参照してください)は、デバッガーに特定のコマンド文字列を送るEmacsコマンドを定義して、GUD interactionバッファーで、それにたいするキーバインドをセットアップする便利な方法を提供します:

(gud-def function cmdstring binding docstring)

これはデバッガープロセスにcmdstringを送る、ドキュメント文字列がdocstringの、functionという名前のコマンドを定義します。コマンドfunctionを、任意のバッファーで使用できます。bindingが非nilの場合、gud-defはそのコマンドを、GUDバッファーのモードではC-c binding、グローバルにはC-x C-a bindingにバインドします。

コマンド文字列cmdstringには、functionが呼び出されたときに書き込まれるデータのための、特定の‘%’シーケンスを含めることができます:

%f

カレントソースファイルの名前です。カレントバッファーがGUDバッファーの場合、“カレントソースファイル”はプログラムがストップしているファイルです。

%l

カレントソース行の番号です。カレントバッファーがGUDバッファーの場合、“カレントソース行”はプログラムがストップしている行です。

%e

transient-mark-modeでは、リージョンがアクティブの場合はリージョンのテキストです。そうでない場合、ポイント位置またはそれに隣接する位置にあるCのlvalue(左辺値)、または関数呼び出し式です。

%a

ポイント位置またはそれに隣接する位置にある、16進アドレスのテキストです。

%p

呼び出された関数の数引数の10進数です。コマンドに数引数が指定されなかった場合、‘%p’は空文字列になります。

コマンド文字列に‘%p’を使用しない場合、定義したコマンドは数引数を無視します。

%d

カレントソースファイルのディレクトリー名です。

%c

ポイントを取り囲む式から派生された、完全に記述されたされたclass名(fully qualified class name)です(jdbのみ)。