* linux-low.c (linux_store_registers): Avoid the copying sequence

when no data has been retrieved by ptrace.
This commit is contained in:
Maciej W. Rozycki 2012-05-22 23:17:51 +00:00
parent 5d196efc83
commit 8d409d16dd
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2012-05-22 Maciej W. Rozycki <macro@codesourcery.com>
* linux-low.c (linux_store_registers): Avoid the copying sequence
when no data has been retrieved by ptrace.
2012-05-22 Will Deacon <will.deacon@arm.com>
* linux-low (__UCLIBC__ && !(__UCLIBC_HAS_MMU__ || __ARCH_HAS_MMU__)):

View File

@ -4449,11 +4449,14 @@ linux_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
ret = errno;
/* Copy appropriate bytes out of the buffer. */
i *= sizeof (PTRACE_XFER_TYPE);
i -= memaddr & (sizeof (PTRACE_XFER_TYPE) - 1);
memcpy (myaddr,
(char *) buffer + (memaddr & (sizeof (PTRACE_XFER_TYPE) - 1)),
i < len ? i : len);
if (i > 0)
{
i *= sizeof (PTRACE_XFER_TYPE);
i -= memaddr & (sizeof (PTRACE_XFER_TYPE) - 1);
memcpy (myaddr,
(char *) buffer + (memaddr & (sizeof (PTRACE_XFER_TYPE) - 1)),
i < len ? i : len);
}
return ret;
}