Re: Thread ID in gdbserver

Daniel Jacobowitz
2005-06-06T13:46:08Z

On Mon, Jun 06, 2005 at 02:25:17PM +0900, Atsushi Nemoto wrote:
> Hi. In Mar 2005, the type of cont_thread, stop_thread, etc. was
> changed to "unsigned long" from "int". But there are still some codes
> which assume these variables are signed numbers.
>
> For example, in gdbserver/server.c:
>
> unsigned long cont_thread;
> ...
> if (n == 1 && resume_info[0].thread != -1)
> cont_thread = resume_info[0].thread;
> else
> cont_thread = -1;
> ...
> if (step || sig || cont_thread > 0)
>
> This looks very suspicious.
>
> For now I do not know whether this is real problem, but it is
> potential bug and should be fixed, isn't it?

Absolutely. I have a bunch of saved mail in my todo list reminding me
to fix these, but I haven't yet. With a modern GDB using vCont, most
of these bugs are not encountered; I didn't do a detailed analysis of
the others to see if they'd cause problems, it would be easier to fix
them.

--
Daniel Jacobowitz
CodeSourcery, LLC