Remove MAX_REGISTER_SIZE from frame.c

gdb/
	* frame.c (get_frame_register_bytes): Unwind using value.
	(put_frame_register_bytes): Likewise.
This commit is contained in:
Alan Hayward
2017-04-04 08:42:30 +01:00
parent 4c220b4625
commit db3a1dc7c9
2 changed files with 26 additions and 12 deletions

View File

@ -1,3 +1,8 @@
2017-05-04 Alan Hayward <alan.hayward@arm.com>
* frame.c (get_frame_register_bytes): Unwind using value.
(put_frame_register_bytes): Likewise.
2017-03-29 Jan Kratochvil <jan.kratochvil@redhat.com>
* auto-load.c (auto_load_section_scripts): Check SEC_HAS_CONTENTS.

View File

@ -1410,16 +1410,21 @@ get_frame_register_bytes (struct frame_info *frame, int regnum,
}
else
{
gdb_byte buf[MAX_REGISTER_SIZE];
enum lval_type lval;
CORE_ADDR addr;
int realnum;
struct value *value = frame_unwind_register_value (frame->next,
regnum);
gdb_assert (value != NULL);
*optimizedp = value_optimized_out (value);
*unavailablep = !value_entirely_available (value);
frame_register (frame, regnum, optimizedp, unavailablep,
&lval, &addr, &realnum, buf);
if (*optimizedp || *unavailablep)
return 0;
memcpy (myaddr, buf + offset, curr_len);
{
release_value (value);
value_free (value);
return 0;
}
memcpy (myaddr, value_contents_all (value) + offset, curr_len);
release_value (value);
value_free (value);
}
myaddr += curr_len;
@ -1460,11 +1465,15 @@ put_frame_register_bytes (struct frame_info *frame, int regnum,
}
else
{
gdb_byte buf[MAX_REGISTER_SIZE];
struct value *value = frame_unwind_register_value (frame->next,
regnum);
gdb_assert (value != NULL);
deprecated_frame_register_read (frame, regnum, buf);
memcpy (buf + offset, myaddr, curr_len);
put_frame_register (frame, regnum, buf);
memcpy ((char *) value_contents_writeable (value) + offset, myaddr,
curr_len);
put_frame_register (frame, regnum, value_contents_raw (value));
release_value (value);
value_free (value);
}
myaddr += curr_len;