server.c:gdb_read_memory: Fix error return.

When I added gdb_read_memory, with bits factored out from elsewhere, I
missed adjusting this error return.  gdb_read_memory has an interface
similar to Like GDB's xfer_partial:

> /* Read trace frame or inferior memory.  Returns the number of bytes
>   actually read, zero when no further transfer is possible, and -1 on
>   error.  Return of a positive value smaller than LEN does not
>   indicate there's no more to be read, only the end of the transfer.

Returning EIO, a positive value, is obviously bogus, for the caller
will confuse it with a successful partial transfer.

Found by inspection.

Tested on x86_64 Fedora 17.

gdb/gdbserver/
2013-09-02  Pedro Alves  <palves@redhat.com>

	* server.c (gdb_read_memory): Return -1 on traceframe memory read
	error instead of EIO.
This commit is contained in:
Pedro Alves 2013-09-02 14:14:58 +00:00
parent 7126d5c82e
commit 9a13b2fa01
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2013-09-02 Pedro Alves <palves@redhat.com>
* server.c (gdb_read_memory): Return -1 on traceframe memory read
error instead of EIO.
2013-08-28 Jan Kratochvil <jan.kratochvil@redhat.com>
PR server/15604

View File

@ -716,7 +716,7 @@ gdb_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
if (traceframe_read_mem (current_traceframe,
memaddr, myaddr, len, &nbytes))
return EIO;
return -1;
/* Data read from trace buffer, we're done. */
if (nbytes > 0)
return nbytes;