Subject: bug#13303: 24.2.91; gdb under emacs broken for break commands

From: Stephen Leake <[email-masked]>
Date: Sat, 29 Dec 2012 10:28:16 -0500

Eli Zaretskii <[email-masked]> writes:

>> From: Stephen Leake <[email-masked]>
>> Cc: [email-masked]
>> Date: Sat, 29 Dec 2012 07:31:07 -0500
>> 
>> > Anyway, the annoyance with no "> " prompt on Posix hosts is a known
>> > problem with GDB versions older than 7.5; see bug#11279.  You can work
>> > around it by typing this command at the first GDB prompt:
>> >
>> >   (gdb) set interactive-mode off
>> >
>> > GDB 7.5 fixed that problem, so upgrading your GDB will remove the need
>> > to use the above work-around.
>> 
>> That does restore the "> " prompt, but it also restores EOF behavior (it
>> now quits the debugger). 
>
> I don't understand: you are supposed to end the breakpoint commands by
> typing just "end" at the "> " prompt.  

Yes, that is what I was expecting.

> It works for me with GDB 7.3 and Emacs 24.2.91 on GNU/Linux; 

Sigh. I hate bugs that behave differently on different machines.

My GNU/Linux is Debian Testing; what are you using?

What Windows are you using? I'm on Windows 7; I could try on Windows XP.

> if it doesn't work for you, please tell what happens when you type
> "end" to end the breakpoint commands.

I get another prompt. (that's why there are two 'end's in the bug report).

> So what happens when sending EOF is not really relevant here, IMO.

Right. 

Except that it is a workaround for the bug on Debian, if I don't
execute "set interactive-mode off". If it was also a workaround on
Windows, I could live with it.

>> So the core problem remains: there is no way to terminate prompting
>> for new command lines, without quiting the debugger.
>
> See above: "end" works for me.

Any suggestions for debugging this further?

I've confirmed that 'end' works as expected when running gdb from a bash
shell not under emacs.

'end' also works when running gdb in a bash shell under emacs. I guess
that's a mostly functional workaround.

'end' works with Emacs 23, running gdb with --annotate=3; it seems
to be the switch to -i=mi that causes the problem for me.

I tried reading the gdb interface elisp code; it's very dense, so I
didn't get very far, but I could try again. I did confirm that Emacs 24
no longer supports --annotate=3.

-- 
-- Stephe