aboutsummaryrefslogtreecommitdiff
path: root/devel/gdb/files/commit-c5cb74e
diff options
context:
space:
mode:
Diffstat (limited to 'devel/gdb/files/commit-c5cb74e')
-rw-r--r--devel/gdb/files/commit-c5cb74e22
1 files changed, 22 insertions, 0 deletions
diff --git a/devel/gdb/files/commit-c5cb74e b/devel/gdb/files/commit-c5cb74e
new file mode 100644
index 000000000000..6bbae88055e0
--- /dev/null
+++ b/devel/gdb/files/commit-c5cb74e
@@ -0,0 +1,22 @@
+diff --git gdb/amd64fbsd-tdep.c gdb/amd64fbsd-tdep.c
+index 2d49cdf..abb0cab 100644
+--- gdb/amd64fbsd-tdep.c
++++ gdb/amd64fbsd-tdep.c
+@@ -37,12 +37,16 @@
+ static CORE_ADDR
+ 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;
++ gdb_byte buf[8];
+
+ /* The `struct sigcontext' (which really is an `ucontext_t' on
+ FreeBSD/amd64) lives at a fixed offset in the signal frame. See
+ <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;
+ }
+