MI inconsistency when detaching

Simon Marchi simon.marchi@ericsson.com
Fri May 31 21:52:00 GMT 2013


Hi,

A colleague of mine found an inconsistency in the MI when detaching a 
process with and without a gdbserver. In the following example, assume 
the process we want to debug is already running and has pid 5422. In the 
first case, there is no "thread-exited" event emitted, but in the second 
case there is.

Attaching and detaching a process without directly (no gdbserver)
$ gdb -i mi
=thread-group-added,id="i1"
(gdb)
-target-attach 5422
=thread-group-started,id="i1",pid="5422"
=thread-created,id="1",group-id="i1"
=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"
=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"
*stopped,frame={addr="0x00007fe48e131d20",func="nanosleep",args=[],from="/lib/x86_64-linux-gnu/libc.so.6"},thread-id="1",stopped-threads="all",core="1"
^done
(gdb)
-target-detach
=thread-group-exited,id="i1"
=library-unloaded,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",thread-group="i1"
=library-unloaded,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",thread-group="i1"
^done
(gdb)


Attaching and detaching a process through gdbserver

(start gdbserver and attach the process)
$ gdbserver --attach :1234 7169

$ gdb -i mi
=thread-group-added,id="i1"
(gdb)
-target-select extended-remote :1234
=thread-group-started,id="i1",pid="5422"
=thread-created,id="1",group-id="i1"
&"warning: Could not load vsyscall page because no executable was 
specified\ntry using the \"file\" command first."
&"\n"
*stopped,frame={addr="0x00007fe48e131d20",func="??",args=[]},thread-id="1",stopped-threads="all",core="3"
=tsv-created,name="trace_timestamp",initial="0"\n
^connected
(gdb)
-target-detach
=thread-exited,id="1",group-id="i1"
=thread-group-exited,id="i1"
^done
(gdb)


is this behavior expected or should it be fixed? If it should be fixed, 
which behavior is the right one?

Thanks,

Simon



More information about the Gdb mailing list