Preserve a verbose error message of xfer functions if they return -3.

gdbserver/
	* server.c (handle_qxfer): Preserve error message if -3 is
	returned.
	(qxfer): Document the -3 return value.
This commit is contained in:
Markus Metzger 2013-03-11 08:31:48 +00:00
parent c12a29171f
commit 5cc22e4cf7
2 changed files with 18 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2013-03-11 Markus Metzger <markus.t.metzger@intel.com>
* server.c (handle_qxfer): Preserve error message if -3 is
returned.
(qxfer): Document the -3 return value.
2013-03-11 Markus Metzger <markus.t.metzger@intel.com>
* Makefile.in (SFILES): Add $(srcdir)/common/linux-btrace.c.

View File

@ -892,10 +892,10 @@ struct qxfer
data-specific information to the target.
Return the number of bytes actually transfered, zero when no
further transfer is possible, -1 on error, and -2 when the
transfer is not supported. Return of a positive value smaller
than LEN does not indicate the end of the object, only the end of
the transfer.
further transfer is possible, -1 on error, -2 when the transfer
is not supported, and -3 on a verbose error message that should
be preserved. Return of a positive value smaller than LEN does
not indicate the end of the object, only the end of the transfer.
One, and only one, of readbuf or writebuf must be non-NULL. */
int (*xfer) (const char *annex,
@ -1323,6 +1323,10 @@ handle_qxfer (char *own_buf, int packet_len, int *new_packet_len_p)
free (data);
return 0;
}
else if (n == -3)
{
/* Preserve error message. */
}
else if (n < 0)
write_enn (own_buf);
else if (n > len)
@ -1361,6 +1365,10 @@ handle_qxfer (char *own_buf, int packet_len, int *new_packet_len_p)
free (data);
return 0;
}
else if (n == -3)
{
/* Preserve error message. */
}
else if (n < 0)
write_enn (own_buf);
else