GUD-GDBを実行しているときに実行可能ファイルをカスタマイズする方法
質問
EMACS 24.3.1を使用してプログラムを書く(CとC ++モードで)。
現在のバッファをコンパイルした後、M-X GUD-GDB以下のコマンドを実行します。Emacsは以下のようなプロンプトを与えます。 GDB - フルネームPROG
しかし、 "PROG"名が現在のバッファからコンパイルされた実行可能ファイルと同じであることがあります。 例えば私は5つのプログラムProg1、Prog2、... Prog5を完成させ、現在PROG6に取り組んでいます。しかし、M-X GUD-GDBはGDB - フルネームProg5を与えます。(代わりにPROG6が欲しいです。)
これを修正する方法はありますか?具体的には、「正しい」とは、PROG名として現在のバッファの名前(サフィックスなし)を使用するようにGUD-GDBを強制することを意味します。
事前にありがとうございました。
解決
Emacsは発見的なものを使っていると思います(どのような実行ファイルが最新か、そのようなものに基づいて)デフォルトのプログラムを見つけるために紹介します。
あなたの好みが非常に具体的な場合は、この関数を定義して使用することができます。
(defun my-gud-gdb ()
(interactive)
(gud-gdb (concat "gdb --fullname "
(file-name-sans-extension (buffer-file-name (current-buffer))))))
.
この関数は、拡張子なしで編集しているファイルのようなファイルのGDBを実行します。
他のヒント
gud-query-cmdline
は、まだ提供されていないオプションの引数としてfilename
を受け入れます。
下記のパッチを提供する必要があります。
必ずファイルアクセス許可が実行可能
に設定されている--- gud.el Sun Mar 17 12:52:42 2013
+++ gud.el Tue Jun 3 10:06:11 2014
@@ -716,7 +716,7 @@
"Run gdb on program FILE in buffer *gud-FILE*.
The directory containing FILE becomes the initial working
directory and source-file directory for your debugger."
- (interactive (list (gud-query-cmdline 'gud-gdb)))
+ (interactive (list (gud-query-cmdline 'gud-gdb (and (file-executable-p (buffer-file-name))(buffer-file-name)))))
(when (and gud-comint-buffer
(buffer-name gud-comint-buffer)
. 所属していません StackOverflow