次: , 上: Debuggers


21.5.1 GUDの起動

デバッガを開始するコマンドはいくつかあり、 それぞれ、特定のデバッガに対応しています。

M-x gdb <RET> file <RET>
EmacsのサブプロセスとしてGDBを実行する。 このコマンドは、GDBへの入出力用のバッファを新たに作り、 そのバッファへ切り替える。 GDBバッファが既存の場合は、そのバッファへ切り替えるだけ。
M-x dbx <RET> file <RET>
同様に、GDBのかわりにDBXを実行する。
M-x xdb <RET> file <RET>
同様に、GDBのかわりにXDBを実行する。 ソースファイルを探索するディレクトリ群を指定するには、 変数gud-xdb-directoriesを使う。
M-x sdb <RET> file <RET>
同様に、GDBのかわりにSDBを実行する。

SDBのバージョンによっては、メッセージにソースファイル名を 含めないものがある。 そのようなSDBを使う場合には、GUDがソースコードから関数を探せるように 正しいタグテーブル(see Tags)が必要である。 タグテーブルを訪問していなかったり、 タグテーブルに当該関数がなかったりすると、 `The sdb support requires a valid tag table to work'という メッセージが表示される。 このような場合には、作業ディレクトリに正しいタグファイルを生成してから やり直す。

M-x perldb <RET> file <RET>
Perlプログラムfileをデバッグするために Perlインタープリタをデバッグモードで実行する。
M-x jdb <RET> file <RET>
fileをデバッグするためにJavaデバッガを実行する。
M-x pdb <RET> file <RET>
fileをデバッグするためにPythonデバッガを実行する。

これらのコマンドは引数を1つ、 つまり、デバッガを起動するコマンド行を取ります。 もっとも単純な場合は、デバッグしたい実行ファイルの名前を指定します。 デバッガに指定できるオプションを使うこともできます。 しかし、シェルのワイルドカードや変数名は使えません。 GUDは、`-'で始まらない最初の引数をデバッグする実行ファイル名であると 仮定します。

Emacsはデバッガプロセスを一度に1つだけ実行できます。