Re: gdbserver with reversed arguments goes into an infinite loop

Daniel Jacobowitz
2006-12-13T13:37:48Z

On Wed, Dec 13, 2006 at 10:58:14AM +0100, Denis PILAT wrote:
> I've found that if you revert the argument of gdbserver, means writing
> the program's name before the COMM argument, it goes into an infinite
> loop, and as the CTRL+C does not work, you have to kill the process from
> an other shell.
>
> In gdbserver/server.c, the loop in question does the remote_open on the
> wrong passed argument (argv[1]) which unfortunately is the binary file
> you'd expect to open so remote_open does not exit on error.
>
> I think either we could check that we pass correct argument before using
> start_inferior(), this is executing before the loop. The bellow patch is
> in that sense.
>
> Or we find a way to exit the loop by adding a test in it. May be by
> adding something in remote_open to let it fail.

I doubt it's in an infinite loop. It's probably sleeping, "waiting"
for a connection. We ought to allow C-c when no debugger is
connected yet. It'd be nice if remote_open wouldn't open ordinary
files, too.

--
Daniel Jacobowitz
CodeSourcery