This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug gdb/22340] New: attach in gdb/mi doesn't display prompt
- From: "mgulick at mathworks dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Mon, 23 Oct 2017 20:53:22 +0000
- Subject: [Bug gdb/22340] New: attach in gdb/mi doesn't display prompt
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=22340
Bug ID: 22340
Summary: attach in gdb/mi doesn't display prompt
Product: gdb
Version: HEAD
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gdb
Assignee: unassigned at sourceware dot org
Reporter: mgulick at mathworks dot com
Target Milestone: ---
When using gdb in mi mode (gdb -i=mi), the "(gdb)" prompt is not displayed
properly when running the "attach" command. This is reproducible in emacs gdb
mode. I also tested this with the 'gdbgui' tool, which also gets confused as
to whether gdb is ready to accept more input after attaching to a process.
The issue seems to be that the gdb output doesn't print the "(gdb)\n" prompt
immediately after printing "^done" (output is from GDB 8.0.1):
(gdb)
attach 31473
&"attach 31473\n"
~"Attaching to process 31473\n"
=thread-group-started,id="i1",pid="31473"
=thread-created,id="1",group-id="i1"
--> ^done
~"Reading symbols from /bin/sleep..."
~"(no debugging symbols found)...done.\n"
=library-loaded,id="/lib/x86_64-linux-gnu/libc.so.6",target-name="/lib/x86_64-linux-gnu/libc.so.6",host-name="/lib/x86_64-linux-gnu/libc.so.6",symbols-loaded="0",thread-group="i1",ranges=[{from="0x00007f3869fd34a0",to="0x00007f386a0ff943"}]
=library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",thread-group="i1",ranges=[{from="0x00007f386a35fae0",to="0x00007f386a378140"}]
~"Reading symbols from /lib/x86_64-linux-gnu/libc.so.6..."
~"(no debugging symbols found)...done.\n"
~"Reading symbols from /lib64/ld-linux-x86-64.so.2..."
~"(no debugging symbols fou2nd)...done.\n"
~"0x00007f386a06df10 in nanosleep () from
/lib/x86_64-linux-gnu/libc.so.6\n"
*stopped,frame={addr="0x00007f386a06df10",func="nanosleep",args=[],from="/lib/x86_64-linux-gnu/libc.so.6"},thread-id="1",stopped-threads="all",core="5"
--> (gdb)
I get the impression from the GDB/MI syntax
(https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Output-Syntax.html#GDB_002fMI-Output-Syntax)
that a result record *must* be immediately followed by a "(gdb)\n" prompt.
This behavior apparently changed in GDB 7.8 (I only very recently started using
GDB/MI mode, so never noticed this change). A git bisect points at this
commit:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=329ea57934a9d4b250a0b417af1ec47bc2d0ceb6
Up until GDB 7.11, I could work around this by running 'maint set target-async
off'. This restored the previous prompting behavior, and this make emacs work
as expected. However this stopped working in GDB 7.11. It looks like this
behavior changed with this commit:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=0b333c5e7d6c3fc65d37ffa11bd21ba52c4adb25.
Reproduction steps:
$ emacs --version
GNU Emacs 24.4.1
$ sleep 1000 &
[1] 14132
$ emacs -nw
...
>> M-x gdb
>> Run gdb (like this): gdb -n -i=mi
...
GNU gdb (GDB) 8.0.50.20171023-git
...
(gdb) attach 14132
Attaching to process 14132
(gdb) Reading symbols from /bin/sleep...(no debugging symbols found)...done.
Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols
found)...done.
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols
found)...done.
0x00007f29a9214f10 in nanosleep () from /lib/x86_64-linux-gnu/libc.so.6
---
Also tested on Emacs 25.1.1 (Debian 9), with no change in behavior.
I'm inclined to point the finger at gdb's mi mode rather than emacs, since
'gdbgui' also fails under similar conditions, but an emacs fix would be just as
good.
--
You are receiving this mail because:
You are on the CC list for the bug.