[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gdb
Subject:    MI inconsistency when detaching
From:       Simon Marchi <simon.marchi () ericsson ! com>
Date:       2013-05-31 21:50:12
Message-ID: 51A91B14.60102 () ericsson ! com
[Download RAW message or body]

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-gn \
u/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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic