This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: gdbserver with reversed arguments goes into an infinite loop
- From: Daniel Jacobowitz <drow at false dot org>
- To: Denis PILAT <denis dot pilat at st dot com>
- Cc: gdb-patches <gdb-patches at sourceware dot org>
- Date: Wed, 13 Dec 2006 08:37:38 -0500
- Subject: Re: gdbserver with reversed arguments goes into an infinite loop
- References: <457FCEB6.4060008@st.com>
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