[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 ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#9878: 24.0.90; M-x gdb should check whether target supports non-stop mode,
Ken Brown <=