From: Michael Snyder Date: Thu, 1 Jun 2000 22:19:03 +0000 (+0000) Subject: 2000-06-01 Michael Snyder X-Git-Tag: readline-pre-41-import~300 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d5cb3e0e0d26cce6f12a80b9f1d8a72c3b27c4e4;p=thirdparty%2Fbinutils-gdb.git 2000-06-01 Michael Snyder * 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 351ae16bb65..a43f61a863a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2000-06-01 Michael Snyder + + * 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 * TODO: More suggestions added. diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c index e749b06fef4..0dcbb3cbfc6 100644 --- a/gdb/sol-thread.c +++ b/gdb/sol-thread.c @@ -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; }