2000-06-01 Michael Snyder <msnyder@seadog.cygnus.com>
authorMichael Snyder <msnyder@vmware.com>
Thu, 1 Jun 2000 22:19:03 +0000 (22:19 +0000)
committerMichael Snyder <msnyder@vmware.com>
Thu, 1 Jun 2000 22:19:03 +0000 (22:19 +0000)
        * sol-thread.c (rw_common): Circumstances (eg. a bug in Sun's
        thread_db library) may cause this function to be called with an
        illegal address, in which case procfs_to_xfer_memory will
        return zero.  Return an error code instead of looping forever.

gdb/ChangeLog
gdb/sol-thread.c

index 351ae16..a43f61a 100644 (file)
@@ -1,3 +1,10 @@
+2000-06-01  Michael Snyder  <msnyder@seadog.cygnus.com>
+
+       * sol-thread.c (rw_common): Circumstances (eg. a bug in Sun's 
+       thread_db library) may cause this function to be called with an
+       illegal address, in which case procfs_to_xfer_memory will 
+       return zero.  Return an error code instead of looping forever.
+
 Thu Jun  1 20:05:26 2000  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * TODO: More suggestions added.
index e749b06..0dcbb3c 100644 (file)
@@ -1090,6 +1090,20 @@ rw_common (int dowrite, const struct ps_prochandle *ph, gdb_ps_addr_t addr,
 
          return PS_ERR;
        }
+      else if (cc == 0)
+       {
+         if (dowrite == 0)
+           warning ("rw_common (): unable to read at addr 0x%lx", 
+                    (long) addr);
+         else
+           warning ("rw_common (): unable to write at addr 0x%lx", 
+                    (long) addr);
+
+         do_cleanups (old_chain);
+
+         return PS_ERR;
+       }
+
       size -= cc;
       buf += cc;
     }