This is the mail archive of the gdb@sourceware.cygnus.com mailing list for the GDB project. See the GDB home page for more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
target_read_string in gdb 4.17 doesn't handle the partial read right. Here is a patch. Thanks. -- H.J. Lu (hjl@gnu.org) --- Mon May 25 22:18:03 1998 H.J. Lu <hjl@gnu.org> * target.c (target_read_string): Handle partial read. Index: target.c =================================================================== RCS file: /home/work/cvs/gnu/gdb/gdb/target.c,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 target.c --- target.c 1998/05/29 13:57:38 1.1.1.1 +++ target.c 1998/11/19 18:10:33 @@ -656,11 +656,11 @@ target_read_string (memaddr, string, len while (len > 0) { - tlen = MIN (len, 4 - (memaddr & 3)); offset = memaddr & 3; - errcode = target_xfer_memory (memaddr & ~3, buf, 4, 0, NULL); - if (errcode != 0) + tlen = target_read_memory_partial (memaddr & ~3, buf, 4, + &errcode); + if (tlen == 0 && errcode != 0) goto done; if (bufptr - buffer + tlen > buffer_allocated) @@ -678,6 +678,7 @@ target_read_string (memaddr, string, len if (buf[i + offset] == '\000') { nbytes_read += i + 1; + errcode = 0; goto done; } }