This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA] Restore leading zeros in remote_thread_alive
- From: Michael Snyder <msnyder at vmware dot com>
- To: Pedro Alves <pedro at codesourcery dot com>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Tue, 21 Oct 2008 18:02:19 -0700
- Subject: [RFA] Restore leading zeros in remote_thread_alive
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)