This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]