起動時に、GUDは以下のいずれかのフックを実行します: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。フックを参照してください。
gud-def Lispマクロ(Emacs
Lispリファレンスマニュアルのマクロの定義を参照)を使用すると、特定のコマンド文字列をデバッガに送信するEmacsコマンドを定義し、GUDインタラクションバッファにキーバインドを設定する便利な方法が提供されます:
(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バッファである場合、現在のソース行はプログラムが停止した行となります。
トランジェントマークモードでは、当該領域のテキスト(アクティブな場合)。そうでない場合は、ポイント上または隣接するC言語の左辺値または関数呼び出し式のテキスト。
ポイント上または隣接する16進数アドレスのテキスト。
呼び出される関数の数値引数(10進数)。数値引数を指定せずにこのコマンドを使用した場合、‘%p’は空文字列を表します。
コマンド文字列で「%p」を使用しない場合、定義したコマンドは数値引数を無視します。
現在のソースファイルのディレクトリ名。
ポイントを囲む式から導出された完全修飾クラス名(jdbのみ)。