This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug remote/17397] i686-w64-mingw32 remote multiprocess debugging: thread.c:1002: internal-error: switch_to_thread: Assertion `inf != NULL' failed.


https://sourceware.org/bugzilla/show_bug.cgi?id=17397

--- Comment #9 from Pedro Alves <palves at redhat dot com> ---
Thanks.  I can reproduce this with GNU/Linux gdbserver.

On one shell:

$ gdbserver --multi :9999 a.out

On another, connect with extended-remote, so we can start
two processes under the same gdbserver:

$ gdb a.out -ex "tar extended-remote :9999"
...
GNU gdb (GDB) 7.9.50.20150318-cvs
...
Reading symbols from ./a.out...done.
Remote debugging using :9999
...
0x0000003615a011f0 in _start () from /lib64/ld-linux-x86-64.so.2
(gdb) info inferiors 
  Num  Description       Executable        
* 1    process 24970     a.out
(gdb) add-inferior 
Added inferior 2
(gdb) inferior 2
[Switching to inferior 2 [<null>] (<noexec>)]
(gdb) info inferiors 
  Num  Description       Executable        
* 2    <null>                              
  1    process 24970     a.out
(gdb) file a.out
Reading symbols from a.out...done.
(gdb) info inferiors 
  Num  Description       Executable        
* 2    <null>            a.out
  1    process 24970     a.out
(gdb) start
Temporary breakpoint 1 at 0x411b67: main. (2 locations)
Starting program: /home/pedro/a.out

Temporary breakpoint 1, main (argc=1, argv=0x7fffffffd908) at
/home/pedro/foo.c:10
10      return 0;
(gdb) info inferiors 
  Num  Description       Executable        
* 2    process 24977     a.out
  1    process 24970     a.out

Now, disconnect, and reconnect, to emulate the OPs use case.

(gdb) disconnect 
Ending remote debugging.
(gdb) info inferiors 
  Num  Description       Executable        
* 2    <null>            a.out
  1    <null>            a.out
(gdb) tar remote :9999
Remote debugging using :9999
Reading symbols from /lib64/libdl.so.2...Reading symbols from /usr/lib/debug
(...)
main (argc=1, argv=0x7fffffffd908) at /home/pedro/foo.c:10
10      return 0;
(gdb) info inferiors 
  Num  Description       Executable        
* 2    process 24977     a.out
  1    <null>            a.out
(gdb) info threads 
  Id   Target Id         Frame 
* 2    Thread 24977      main (argc=1, argv=0x7fffffffd908) at
/home/pedro/foo.c:10
  1    Thread 24970      
/home/pedro/gdb/mygit/src/gdb/thread.c:1182: 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)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]