Multiple remote inferiors

Pedro Alves pedro@codesourcery.com
Fri Apr 8 10:00:00 GMT 2011


On Friday 08 April 2011 10:40:44, Kevin Pouget wrote:
> Hi Pedro,
> 
> thanks for your answer, I gave it a try, but it seems to behave a bit strangely.

Hmm, yes, I can see how you've hit something confusing.

> 
> --> should it be possible to start _two different_ processes from a single GDBServer ?

Yes.

> 
> here is what I got (debugging functionPtr and stackoverflow):
>  
> $ gdbserver :1234 functionPtr 

This sets the default process to launch as "functionPtr".

> Process functionPtr created; pid = 10820
> Listening on port 1234
>  Remote debugging from host 127.0.0.1
> Process functionPtr created; pid = 10825
> 
>  $ gdb functionPtr
> GNU gdb (GDB) Fedora (7.2-46.fc14)
> ...
> Reading symbols from /home/kevin/travail/arm/perso/root/sample/debug/functionPtr...done.
> (gdb) target extended-remote :1234
> Remote debugging using :1234
>  ...
> (gdb) b main
> Breakpoint 1 at 0x400533: file ./functionPtr.c, line 8.
> (gdb) c
> Continuing.
> Breakpoint 1, main () at ./functionPtr.c:8
> 8 void (* my_say) (const char *) = NULL ;
> 
> (gdb) add-inferior 
>  Added inferior 2
> (gdb) inferior 2
> [Switching to inferior 2 [Thread 0.0] (<noexec>)]
> (gdb) file stackoverflow
> Reading symbols from /home/kevin/travail/arm/perso/root/sample/debug/stackoverflow...done.

There is no automatic connection between GDB's executable, and the
executable gdbserver spawns.  You also need to
do "set remote exec-file FOO"

I was assuming you'd start gdbserver with --multi, like so:

$ gdbserver --multi :9999

Which would have forced you to use that command at least once
and make the problem more obvious.

>  (gdb) b main
> Breakpoint 2 at 0x400522: file stackoverflow.c, line 10.
> (gdb) r
> Starting program: /home/kevin/travail/arm/perso/root/sample/debug/stackoverflow 
> Ignoring packet error, continuing...

This shouldn't happen.  Is it a red herring?

> but ultimately, what I would like to do is connecting GDB to two *different* gdbservers, ie maintain two TCP connections simultaneously.

A lot to do to get there, but the good thing is that
we're closer that ever.  :-)

-- 
Pedro Alves



More information about the Gdb mailing list