Browse Source

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.
binutils-2_24-branch
Pedro Alves 13 years ago
parent
commit
9a13b2fa01
  1. 5
      gdb/gdbserver/ChangeLog
  2. 2
      gdb/gdbserver/server.c

5
gdb/gdbserver/ChangeLog

@ -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> 2013-08-28 Jan Kratochvil <jan.kratochvil@redhat.com>
PR server/15604 PR server/15604

2
gdb/gdbserver/server.c

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

Loading…
Cancel
Save