[bug?] [patch] target remote and multiprocess+

Matthias Pfaller leo@marco.de
Wed Nov 23 08:55:00 GMT 2016


To make sure I'm not totally wrong I did run an (unpatched) gdbserver
(7.11.1) -multi on my host machine. Then I connected with
extended-remote and created two inferiors. After a disconnect and a
reconnect gdbserver responds with the following inferior/thread list:

l<threads>\n<thread id="p29ae.29ae" core="3" name="xterm"/>\n<thread
id="p3dcf.3dcf" core="1" name="xterm"/>\n</threads>\n

But doing a "info inferiors" will show:
(gdb) info inferiors
  Num  Description       Executable
* 1    process 15823     /usr/uti/xterm

and info threads:
(gdb) info threads
Sending packet: $qXfer:threads:read::0,fff#03...Packet received:
l<threads>\n<thread id="p29ae.29ae" core="3" name="xterm"/>\n<thread
id="p3dcf.3dcf" core="1" name="xterm"/>\n</threads>\n
  Id   Target Id         Frame
  1    Thread 10670.10670 "xterm"
../../gdb/thread.c:1447: internal-error: switch_to_thread: Assertion
`inf != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)

(note that this is the host system's gdb 7.11.1)
So attaching to a target with multiple running inferiors just doesn't
work at the moment.

Now I tried with gdb-7.12 and my patches applied:

(gdb) set non-stop on
(gdb) target remote localhost:29979
Remote debugging using localhost:29979
Reading /usr/uti/xterm from remote target...
warning: File transfers from remote targets can be slow. Use "set
sysroot" to access files locally instead.
Reading /usr/uti/xterm from remote target...
Reading symbols from target:/usr/uti/xterm...(no debugging symbols
found)...done.
Python Exception <type 'exceptions.NameError'> Installation error:
gdb.execute_unwinders function is missing:

Thread 1.1 "xterm" stopped.
0x00007ffff7ddac80 in ?? ()
Python Exception <type 'exceptions.NameError'> Installation error:
gdb.execute_unwinders function is missing:

Thread 2.1 "xterm" stopped.
0x00007ffff7ddac80 in ?? ()
(gdb) info threads
  Id   Target Id         Frame
  1.1  Thread 10670.10670 "xterm" Python Exception <type
'exceptions.NameError'> Installation error: gdb.execute_unwinders
function is missing:
0x00007ffff7ddac80 in ?? ()
* 2.1  Thread 15823.15823 "xterm" Python Exception <type
'exceptions.NameError'> Installation error: gdb.execute_unwinders
function is missing:
0x00007ffff7ddac80 in ?? ()
(gdb) info inferiors
  Num  Description       Executable
  1    process 10670     target:/usr/uti/xterm
* 2    process 15823     target:/usr/uti/xterm

So I think this is at least not worse than what gdb was doing before...
Is there a chance to get this patch into gdb?

Matthias
-- 
Matthias Pfaller                          Software Entwicklung
marco Systemanalyse und Entwicklung GmbH  Tel   +49 8131 5161 41
Hans-Böckler-Str. 2, D 85221 Dachau       Fax   +49 8131 5161 66
http://www.marco.de/                      Email leo@marco.de
Geschäftsführer Martin Reuter             HRB 171775 Amtsgericht München

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4349 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://sourceware.org/pipermail/gdb/attachments/20161123/8d58d47a/attachment.p7s>


More information about the Gdb mailing list