ARM: Do not use FP reg when on AAPCS
GDB tries to dereference the frame pointer in arm_scan_prologue as a last resort to create frame information. However, the more recent AAPCS ABI does not make use of a frame pointer. This patch checks whether the specified arm_abi is AAPCS before dereferencing the "frame pointer". If so, just return as efforts to use it for restoring frame information won't work. gdb/ChangeLog 2018-11-06 Marius Muench <marius.muench@eurecom.fr> * arm-tdep.c (arm_scan_prologue): Don't dereference FP reg when on AAPCS.
This commit is contained in:
parent
bcecc11da2
commit
9e237747bd
|
@ -1,3 +1,8 @@
|
||||||
|
2018-11-06 Marius Muench <marius.muench@eurecom.fr>
|
||||||
|
|
||||||
|
* arm-tdep.c (arm_scan_prologue): Don't dereference FP reg
|
||||||
|
when on AAPCS.
|
||||||
|
|
||||||
2018-11-06 John Baldwin <jhb@FreeBSD.org>
|
2018-11-06 John Baldwin <jhb@FreeBSD.org>
|
||||||
|
|
||||||
* riscv-fbsd-nat.c (getregs_supplies): Return true for
|
* riscv-fbsd-nat.c (getregs_supplies): Return true for
|
||||||
|
|
|
@ -1801,6 +1801,10 @@ arm_scan_prologue (struct frame_info *this_frame,
|
||||||
CORE_ADDR frame_loc;
|
CORE_ADDR frame_loc;
|
||||||
ULONGEST return_value;
|
ULONGEST return_value;
|
||||||
|
|
||||||
|
/* AAPCS does not use a frame register, so we can abort here. */
|
||||||
|
if (gdbarch_tdep (gdbarch)->arm_abi == ARM_ABI_AAPCS)
|
||||||
|
return;
|
||||||
|
|
||||||
frame_loc = get_frame_register_unsigned (this_frame, ARM_FP_REGNUM);
|
frame_loc = get_frame_register_unsigned (this_frame, ARM_FP_REGNUM);
|
||||||
if (!safe_read_memory_unsigned_integer (frame_loc, 4, byte_order,
|
if (!safe_read_memory_unsigned_integer (frame_loc, 4, byte_order,
|
||||||
&return_value))
|
&return_value))
|
||||||
|
|
Loading…
Reference in New Issue