Question

J'utilise emacs 24.3.1 pour écrire des programmes (en mode C et C++).

Après avoir compilé le tampon actuel, j'exécute la commande ci-dessous :M-x gud-gdb.Emacs donne une invite comme ci-dessous :gdb --nom complet programme

Cependant, parfois le nom « prog » n'est pas le même que le nom de l'exécutable compilé à partir du tampon actuel.par exemple.J'ai complété cinq programmes prog1, prog2,...prog5, et travaille actuellement sur prog6.Mais M-x gud-gdb me donne gdb --fullname prog5.(Je veux plutôt prog6.)

Existe-t-il un moyen de corriger cela ?Plus précisément, "correct" signifie forcer gud-gdb à utiliser le nom du tampon actuel (sans suffixe) comme nom du programme.

Merci d'avance.

Était-ce utile?

La solution

Je pense que Emacs utilise une heuristique (basé sur ce que le fichier exécutable est plus récent ou quelque chose comme ça) pour comprendre le programme par défaut à offrir.

Si vos préférences sont très spécifiques, vous pouvez définir et utiliser cette fonction:

(defun my-gud-gdb ()
 (interactive)
 (gud-gdb (concat "gdb --fullname "
                  (file-name-sans-extension (buffer-file-name (current-buffer))))))

Cette fonction exécutera GDB sur un fichier nommé comme le fichier que vous modifiez sans extension.

Autres conseils

gud-query-cmdline accepte filename comme argument facultatif, qui n'est pas encore servi.

Le patch ci-dessous devrait le fournir.

Assurez-vous que les autorisations de fichiers sont définies sur exécutable

--- 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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top