كيفية تخصيص الاسم القابل للتنفيذ عند تشغيل gud-gdb

StackOverflow https://stackoverflow.com//questions/24005911

  •  20-12-2019
  •  | 
  •  

سؤال

أنا أستخدم emacs 24.3.1 لكتابة البرامج (في وضع C وC++).

بعد تجميع المخزن المؤقت الحالي، أقوم بتشغيل الأمر أدناه:M-x gud-gdb.يعطي Emacs موجهًا كما يلي:gdb -- الاسم الكامل بروغ

ومع ذلك، في بعض الأحيان لا يكون اسم "البرنامج" هو نفس الاسم القابل للتنفيذ الذي تم تجميعه من المخزن المؤقت الحالي.على سبيل المثالأكملت خمسة برامج prog1,prog2,...prog5، ويعمل حاليا على prog6.لكن M-x gud-gdb يعطيني gdb --fullname prog5.(أريد prog6 بدلاً من ذلك.)

هل هناك طريقة لتصحيح هذا؟على وجه التحديد، تعني كلمة "صحيح" إجبار gud-gdb على استخدام اسم المخزن المؤقت الحالي (بدون لاحقة) كاسم للبرنامج.

شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

أعتقد أن EMACS يستخدم مزيجا (بناء على الملف القابل للتنفيذ أكثر حداثة أو شيء من هذا القبيل) لمعرفة البرنامج الافتراضي لتقديمه.

إذا كانت تفضيلاتك محددة للغاية، فيمكنك تحديد واستخدام هذه الوظيفة:

giveacodicetagpre.

هذه الوظيفة ستنفذ 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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top