* linux-low.c (linux_read_memory): Change return type to
int. Check for and return error from ptrace(). * target.c (read_inferior_memory): Change return type to int. Pass back return status from the_target->read_memory(). * target.h (struct target_ops): Adapt *read_memory() prototype. Update comment. (read_inferior_memory): Adapt prototype. * server.c (main): Return an error packet if read_inferior_memory() returns an error.
This commit is contained in:
parent
d81510055c
commit
c3e735a6a3
|
@ -1,3 +1,15 @@
|
|||
2004-03-04 Nathan J. Williams <nathanw@wasabisystems.com>
|
||||
|
||||
* linux-low.c (linux_read_memory): Change return type to
|
||||
int. Check for and return error from ptrace().
|
||||
* target.c (read_inferior_memory): Change return type to int. Pass
|
||||
back return status from the_target->read_memory().
|
||||
* target.h (struct target_ops): Adapt *read_memory() prototype.
|
||||
Update comment.
|
||||
(read_inferior_memory): Adapt prototype.
|
||||
* server.c (main): Return an error packet if
|
||||
read_inferior_memory() returns an error.
|
||||
|
||||
2004-03-04 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* Makefile.in (distclean): Remove config.h, stamp-h, and config.log.
|
||||
|
|
|
@ -1281,7 +1281,7 @@ linux_store_registers (int regno)
|
|||
/* Copy LEN bytes from inferior's memory starting at MEMADDR
|
||||
to debugger memory starting at MYADDR. */
|
||||
|
||||
static void
|
||||
static int
|
||||
linux_read_memory (CORE_ADDR memaddr, char *myaddr, int len)
|
||||
{
|
||||
register int i;
|
||||
|
@ -1298,11 +1298,16 @@ linux_read_memory (CORE_ADDR memaddr, char *myaddr, int len)
|
|||
/* Read all the longwords */
|
||||
for (i = 0; i < count; i++, addr += sizeof (PTRACE_XFER_TYPE))
|
||||
{
|
||||
errno = 0;
|
||||
buffer[i] = ptrace (PTRACE_PEEKTEXT, inferior_pid, (PTRACE_ARG3_TYPE) addr, 0);
|
||||
if (errno)
|
||||
return errno;
|
||||
}
|
||||
|
||||
/* Copy appropriate bytes out of the buffer. */
|
||||
memcpy (myaddr, (char *) buffer + (memaddr & (sizeof (PTRACE_XFER_TYPE) - 1)), len);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Copy LEN bytes of data from debugger memory at MYADDR
|
||||
|
|
|
@ -462,8 +462,10 @@ main (int argc, char *argv[])
|
|||
break;
|
||||
case 'm':
|
||||
decode_m_packet (&own_buf[1], &mem_addr, &len);
|
||||
read_inferior_memory (mem_addr, mem_buf, len);
|
||||
convert_int_to_ascii (mem_buf, own_buf, len);
|
||||
if (read_inferior_memory (mem_addr, mem_buf, len) == 0)
|
||||
convert_int_to_ascii (mem_buf, own_buf, len);
|
||||
else
|
||||
write_enn (own_buf);
|
||||
break;
|
||||
case 'M':
|
||||
decode_M_packet (&own_buf[1], &mem_addr, &len, mem_buf);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Target operations for the remote server for GDB.
|
||||
Copyright 2002
|
||||
Copyright 2002, 2004
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
Contributed by MontaVista Software.
|
||||
|
@ -57,11 +57,13 @@ set_desired_inferior (int use_general)
|
|||
current_inferior = found;
|
||||
}
|
||||
|
||||
void
|
||||
int
|
||||
read_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len)
|
||||
{
|
||||
(*the_target->read_memory) (memaddr, myaddr, len);
|
||||
int res;
|
||||
res = (*the_target->read_memory) (memaddr, myaddr, len);
|
||||
check_mem_read (memaddr, myaddr, len);
|
||||
return res;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -102,9 +102,11 @@ struct target_ops
|
|||
/* Read memory from the inferior process. This should generally be
|
||||
called through read_inferior_memory, which handles breakpoint shadowing.
|
||||
|
||||
Read LEN bytes at MEMADDR into a buffer at MYADDR. */
|
||||
Read LEN bytes at MEMADDR into a buffer at MYADDR.
|
||||
|
||||
Returns 0 on success and errno on failure. */
|
||||
|
||||
void (*read_memory) (CORE_ADDR memaddr, char *myaddr, int len);
|
||||
int (*read_memory) (CORE_ADDR memaddr, char *myaddr, int len);
|
||||
|
||||
/* Write memory to the inferior process. This should generally be
|
||||
called through write_inferior_memory, which handles breakpoint shadowing.
|
||||
|
@ -160,7 +162,7 @@ void set_target_ops (struct target_ops *);
|
|||
|
||||
unsigned char mywait (char *statusp, int connected_wait);
|
||||
|
||||
void read_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len);
|
||||
int read_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len);
|
||||
|
||||
int write_inferior_memory (CORE_ADDR memaddr, const char *myaddr, int len);
|
||||
|
||||
|
|
Loading…
Reference in New Issue