Fix infinite recursion in amd64fbsd_sigcontext_addr
amd64fbsd_sigcontext_addr is using frame_unwind_register_unsigned to fetch the stack pointer which results in infinite recursion. This patch changes it to use get_frame_register to match the sigcontext_addr methods in the i386-bsd and amd64-linux targets instead. gdb/ChangeLog: 2015-02-25 John Baldwin <jhb@freebsd.org> * amd64fbsd-tdep.c (amd64fbsd_sigcontext_addr): Use get_frame_register instead of frame_unwind_register_unsigned.
This commit is contained in:
parent
17487d857c
commit
c5cb74eeb3
2 changed files with 10 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2015-02-25 John Baldwin <jhb@freebsd.org>
|
||||||
|
|
||||||
|
* amd64fbsd-tdep.c (amd64fbsd_sigcontext_addr): Use
|
||||||
|
get_frame_register instead of frame_unwind_register_unsigned.
|
||||||
|
|
||||||
2015-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
|
2015-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
PR build/18033
|
PR build/18033
|
||||||
|
|
|
@ -37,12 +37,16 @@
|
||||||
static CORE_ADDR
|
static CORE_ADDR
|
||||||
amd64fbsd_sigcontext_addr (struct frame_info *this_frame)
|
amd64fbsd_sigcontext_addr (struct frame_info *this_frame)
|
||||||
{
|
{
|
||||||
|
struct gdbarch *gdbarch = get_frame_arch (this_frame);
|
||||||
|
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||||
CORE_ADDR sp;
|
CORE_ADDR sp;
|
||||||
|
gdb_byte buf[8];
|
||||||
|
|
||||||
/* The `struct sigcontext' (which really is an `ucontext_t' on
|
/* The `struct sigcontext' (which really is an `ucontext_t' on
|
||||||
FreeBSD/amd64) lives at a fixed offset in the signal frame. See
|
FreeBSD/amd64) lives at a fixed offset in the signal frame. See
|
||||||
<machine/sigframe.h>. */
|
<machine/sigframe.h>. */
|
||||||
sp = frame_unwind_register_unsigned (this_frame, AMD64_RSP_REGNUM);
|
get_frame_register (this_frame, AMD64_RSP_REGNUM, buf);
|
||||||
|
sp = extract_unsigned_integer (buf, 8, byte_order);
|
||||||
return sp + 16;
|
return sp + 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue