Subject: Re: bug#23720: 25.0.94; Issues with GUD (gdb-mi) after upgrade from Emacs 23 to 24/25

From: Eli Zaretskii <[email-masked]>
Date: Thu, 09 Jun 2016 17:36:20 +0300

> Cc: [email-masked]
> From: Guilhem Bichot <[email-masked]>
> Date: Thu, 9 Jun 2016 16:30:16 +0200
> 
> >> Pressing this STOP button in emacs23 does interrupt it.
> >> It doesn't anymore in emacs24.
> >> Is it considered normal?
> >
> > I don't think so, but I don't have any more wisdom to offer about
> > this.  AFAIU, -exec-interrupt should have interrupted your program,
> > unless it masks signals.
> 
> I see. When I find the time, I'll try diff-ing the code of gud-gdb and 
> of gdb-mi to find what magic the gud-gdb STOP button has, which makes it 
> have "a stronger interruption effect".
> If I find anything, I'll report it here.

I think the answer to that is clear from this:

  (defun gud-stop-subjob ()
    (interactive)
    (with-current-buffer gud-comint-buffer
      (cond ((string-equal gud-target-name "emacs")
	     (comint-stop-subjob))
	    ((eq gud-minor-mode 'jdb)
	     (gud-call "suspend"))
	    ((eq gud-minor-mode 'gdbmi)
	     (gud-call (gdb-gud-context-command "-exec-interrupt")))
	    (t
	     (comint-interrupt-subjob)))))

As you see i works differently depending on whether gdb-mi is used or
not.  What I don't understand is why -exec-interrupt doesn't do its
job in your case.