2001-11-19 Elena Zannoni <ezannoni@redhat.com>
* infptrace.c (fetch_register): Dynamically allocate buffer for register. (store_register): Use regcache_collect, instead of accessing the register buffer directly.
This commit is contained in:
parent
479412cd97
commit
8b6f1f3a31
@ -1,3 +1,10 @@
|
||||
2001-11-19 Elena Zannoni <ezannoni@redhat.com>
|
||||
|
||||
* infptrace.c (fetch_register): Dynamically allocate buffer for
|
||||
register.
|
||||
(store_register): Use regcache_collect, instead of accessing the
|
||||
register buffer directly.
|
||||
|
||||
2001-11-19 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* mips-tdep.c (find_proc_desc): Add cur_frame argument. Pass
|
||||
|
@ -359,7 +359,7 @@ fetch_register (int regno)
|
||||
char mess[128]; /* For messages */
|
||||
register int i;
|
||||
unsigned int offset; /* Offset of registers within the u area. */
|
||||
char buf[MAX_REGISTER_RAW_SIZE];
|
||||
char *buf = alloca (MAX_REGISTER_RAW_SIZE);
|
||||
int tid;
|
||||
|
||||
if (CANNOT_FETCH_REGISTER (regno))
|
||||
@ -424,6 +424,7 @@ store_register (int regno)
|
||||
register int i;
|
||||
unsigned int offset; /* Offset of registers within the u area. */
|
||||
int tid;
|
||||
char *buf = alloca (MAX_REGISTER_RAW_SIZE);
|
||||
|
||||
if (CANNOT_STORE_REGISTER (regno))
|
||||
{
|
||||
@ -437,11 +438,16 @@ store_register (int regno)
|
||||
offset = U_REGS_OFFSET;
|
||||
|
||||
regaddr = register_addr (regno, offset);
|
||||
|
||||
/* Put the contents of regno into a local buffer */
|
||||
regcache_collect (regno, buf);
|
||||
|
||||
/* Store the local buffer into the inferior a chunk at the time. */
|
||||
for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (PTRACE_XFER_TYPE))
|
||||
{
|
||||
errno = 0;
|
||||
ptrace (PT_WRITE_U, tid, (PTRACE_ARG3_TYPE) regaddr,
|
||||
*(PTRACE_XFER_TYPE *) & registers[REGISTER_BYTE (regno) + i]);
|
||||
*(PTRACE_XFER_TYPE *) (buf + i));
|
||||
regaddr += sizeof (PTRACE_XFER_TYPE);
|
||||
if (errno != 0)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user