[RFA] Restore leading zeros in remote_thread_alive
Michael Snyder
msnyder@vmware.com
Wed Oct 22 01:10:00 GMT 2008
Damn! Please ignore the "skip spaces" diff.
Intended to be submitted as a separate patch tomorrow...
Michael Snyder wrote:
> Hi Pedro,
>
> VMware has a remote target for which "info threads" stopped
> working after you added your remote multi-process patch in
> September. I've finally got around to figuring out why.
>
> The docs don't actually say whether this message should have
> leading zeros, but it always used to (you can check out the
> old sprintf spec).
>
> If there's no compelling reason for removing them,
> do you mind if we put them back? ;-)
>
>
>
> ------------------------------------------------------------------------
>
> 2008-10-21 Michael Snyder <msnyder@vmware.com>
>
> * remote.c (write_ptid): Emit leading zeros to preserve
> remote protocol behavior of remote_thread_alive.
>
> Index: remote.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/remote.c,v
> retrieving revision 1.321
> diff -u -p -r1.321 remote.c
> --- remote.c 17 Oct 2008 19:43:47 -0000 1.321
> +++ remote.c 22 Oct 2008 01:00:16 -0000
> @@ -1433,15 +1433,15 @@ write_ptid (char *buf, const char *endbu
> {
> pid = ptid_get_pid (ptid);
> if (pid < 0)
> - buf += xsnprintf (buf, endbuf - buf, "p-%x.", -pid);
> + buf += xsnprintf (buf, endbuf - buf, "p-%08x.", -pid);
> else
> - buf += xsnprintf (buf, endbuf - buf, "p%x.", pid);
> + buf += xsnprintf (buf, endbuf - buf, "p%08x.", pid);
> }
> tid = ptid_get_tid (ptid);
> if (tid < 0)
> - buf += xsnprintf (buf, endbuf - buf, "-%x", -tid);
> + buf += xsnprintf (buf, endbuf - buf, "-%x08", -tid);
> else
> - buf += xsnprintf (buf, endbuf - buf, "%x", tid);
> + buf += xsnprintf (buf, endbuf - buf, "%x08", tid);
>
> return buf;
> }
> @@ -2097,6 +2097,10 @@ remote_threads_info (void)
> {
> do
> {
> + /* Skip spaces. */
> + while (*bufp == ' ')
> + bufp++;
> +
> new_thread = read_ptid (bufp, &bufp);
> if (!ptid_equal (new_thread, null_ptid)
> && (!in_thread_list (new_thread)
More information about the Gdb-patches
mailing list