This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH/i386newframe] Fix amd64 stack frame base address
- From: Mark Kettenis <kettenis at chello dot nl>
- To: gdb-patches at sources dot redhat dot com
- Date: Mon, 19 May 2003 18:59:38 +0200 (CEST)
- Subject: [PATCH/i386newframe] Fix amd64 stack frame base address
This makes the DWARF CFI and amd64 unwinders agree on what's the base
of the stack frame.
Comitted.
Mark
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
* x86-64-tdep.c (x86_64_frame_this_id,
x86_64_sigtramp_frame_this_id, x86_64_unwind_dummy_id): Add offset
to the frame base such that we use the same defenition for the top
of stack as DWARF CFI does.
Index: x86-64-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/x86-64-tdep.c,v
retrieving revision 1.67.2.4
diff -u -p -r1.67.2.4 x86-64-tdep.c
--- x86-64-tdep.c 18 May 2003 17:57:00 -0000 1.67.2.4
+++ x86-64-tdep.c 19 May 2003 16:57:10 -0000
@@ -966,7 +966,7 @@ x86_64_frame_this_id (struct frame_info
if (inside_entry_file (cache->pc))
return;
- (*this_id) = frame_id_build (cache->base, cache->pc);
+ (*this_id) = frame_id_build (cache->base + 16, cache->pc);
}
static void
@@ -1064,7 +1064,7 @@ x86_64_sigtramp_frame_this_id (struct fr
struct x86_64_frame_cache *cache =
x86_64_sigtramp_frame_cache (next_frame, this_cache);
- (*this_id) = frame_id_build (cache->base, frame_pc_unwind (next_frame));
+ (*this_id) = frame_id_build (cache->base + 16, frame_pc_unwind (next_frame));
}
static void
@@ -1133,7 +1133,7 @@ x86_64_unwind_dummy_id (struct gdbarch *
frame_unwind_register (next_frame, X86_64_RBP_REGNUM, buf);
fp = extract_unsigned_integer (buf, 8);
- return frame_id_build (fp, frame_pc_unwind (next_frame));
+ return frame_id_build (fp + 16, frame_pc_unwind (next_frame));
}
void