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>
|
||||
|
||||
* 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;
|
||||
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);
|
||||
if (!safe_read_memory_unsigned_integer (frame_loc, 4, byte_order,
|
||||
&return_value))
|
||||
|
|
Loading…
Reference in New Issue