起動時にGUDは以下のフックの1つを実行します:
GDBを使用している場合はgdb-mode-hook
、
DBXを使用している場合はdbx-mode-hook
、
SDBを使用している場合はsdb-mode-hook
、
XDBを使用している場合はxdb-mode-hook
、Guile
REPLのデバッグにはguiler-mode-hook
、
Perlのデバッグモードを使用している場合はperldb-mode-hook
、
PDBを使用している場合はpdb-mode-hook
、
JDBを使用している場合はjdb-mode-hook
を実行します。
フックを参照してください。
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が呼び出されたときに書き込まれるデータのための、特定の‘%’シーケンスを含めることができます:
カレントソースファイルの名前です。カレントバッファーがGUDバッファーの場合、カレントソースファイルはプログラムがストップしているファイルです。
カレントソース行の番号です。カレントバッファーがGUDバッファーの場合、カレントソース行はプログラムがストップしている行です。
transient-mark-modeでは、リージョンがアクティブの場合はリージョンのテキストです。そうでない場合、ポイント位置またはそれに隣接する位置にあるCのlvalue(左辺値)、または関数呼び出し式です。
ポイント位置またはそれに隣接する位置にある、16進アドレスのテキストです。
呼び出された関数の数引数の10進数です。コマンドに数引数が指定されなかった場合、‘%p’は空文字列になります。
コマンド文字列に‘%p’を使用しない場合、定義したコマンドは数引数を無視します。
カレントソースファイルのディレクトリー名です。
ポイントを取り囲む式から派生された、完全に記述されたされたclass名(fully qualified class name)です(jdbのみ)。