This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]