forked from Imagelibrary/binutils-gdb
* remote.c (remote_xfer_partial): Handle TARGET_OBJECT_MEMORY.
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
2004-10-05 Daniel Jacobowitz <dan@debian.org>
|
||||
|
||||
* remote.c (remote_xfer_partial): Handle TARGET_OBJECT_MEMORY.
|
||||
|
||||
2004-10-05 Andrew Cagney <cagney@gnu.org>
|
||||
|
||||
* version.in: Bump to version 6.2.50_YYYY-MM-DD-cvs.
|
||||
|
||||
25
gdb/remote.c
25
gdb/remote.c
@@ -4864,6 +4864,31 @@ remote_xfer_partial (struct target_ops *ops, enum target_object object,
|
||||
char *p2 = &buf2[0];
|
||||
char query_type;
|
||||
|
||||
/* Handle memory using remote_xfer_memory. */
|
||||
if (object == TARGET_OBJECT_MEMORY)
|
||||
{
|
||||
int xfered;
|
||||
errno = 0;
|
||||
|
||||
if (writebuf != NULL)
|
||||
{
|
||||
void *buffer = xmalloc (len);
|
||||
struct cleanup *cleanup = make_cleanup (xfree, buffer);
|
||||
memcpy (buffer, writebuf, len);
|
||||
xfered = remote_xfer_memory (offset, buffer, len, 1, NULL, ops);
|
||||
do_cleanups (cleanup);
|
||||
}
|
||||
else
|
||||
xfered = remote_xfer_memory (offset, readbuf, len, 0, NULL, ops);
|
||||
|
||||
if (xfered > 0)
|
||||
return xfered;
|
||||
else if (xfered == 0 && errno == 0)
|
||||
return 0;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Only handle reads. */
|
||||
if (writebuf != NULL || readbuf == NULL)
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user