bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#9878: 24.0.90; M-x gdb should check whether target supports non-stop


From: Ken Brown
Subject: bug#9878: 24.0.90; M-x gdb should check whether target supports non-stop mode
Date: Wed, 26 Oct 2011 14:24:56 -0400
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1

If non-stop mode is set, M-x gdb tries to set the target for running in non-stop mode; see line 883 of gdb-mi.el. But there's no check to see if that succeeded. If it didn't, any attempt to run the program results in the error message "The target does not support running in non-stop mode.", which might mystify many users.

This is a problem on Cygwin, where apparently no targets support running in non-stop mode (as far as I can tell), and it may also be a problem on Windows; see

  http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6072

To reproduce:

emacs -Q
M-x gdb RET
<delete any file name in the prompt, if necessary, and enter one that does not support running in non-stop mode>

The following patch fixes it.  OK to apply?

=== modified file 'lisp/progmodes/gdb-mi.el'
--- lisp/progmodes/gdb-mi.el    2011-10-06 16:11:38 +0000
+++ lisp/progmodes/gdb-mi.el    2011-10-26 16:44:38 +0000
@@ -881,8 +881,17 @@
        (setq gdb-version "pre-7.0"))
     (setq gdb-version "7.0+")
     (gdb-input (list "-gdb-set target-async 1" 'ignore))
+    (gdb-input (list "-list-target-features" 'gdb-check-target-async))
     (gdb-input (list "-enable-pretty-printing" 'ignore))))

+(defun gdb-check-target-async ()
+  (goto-char (point-min))
+  (unless (re-search-forward "async" nil t
+    (message
+     "Target doesn't support non-stop mode.  Turning it off.")
+    (setq gdb-non-stop nil)
+    (gdb-input (list "-gdb-set non-stop 0" 'ignore))))
+
(defvar gdb-define-alist nil "Alist of #define directives for GUD tooltips.")

 (defun gdb-create-define-alist ()






reply via email to

[Prev in Thread] Current Thread [Next in Thread]