]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2003-01-04 Andrew Cagney <ac131313@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Sat, 4 Jan 2003 13:55:30 +0000 (13:55 +0000)
committerAndrew Cagney <cagney@redhat.com>
Sat, 4 Jan 2003 13:55:30 +0000 (13:55 +0000)
* frame.c (deprecated_frame_xmalloc): New function.
(deprecated_set_frame_saved_regs_hack): New function.
(deprecated_set_frame_extra_info_hack): New function.
* frame.h (deprecated_frame_xmalloc): Declare.
(deprecated_set_frame_saved_regs_hack): Declare.
(deprecated_set_frame_extra_info_hack): Declare.

gdb/ChangeLog
gdb/frame.c
gdb/frame.h

index ed0891865f2e5851edaaa636882e01a3b20f1f88..dc26958ba9191fed3e9c1462c356f1ee5cb4fe60 100644 (file)
@@ -1,3 +1,12 @@
+2003-01-04  Andrew Cagney  <ac131313@redhat.com>
+
+       * frame.c (deprecated_frame_xmalloc): New function.
+       (deprecated_set_frame_saved_regs_hack): New function.
+       (deprecated_set_frame_extra_info_hack): New function.
+       * frame.h (deprecated_frame_xmalloc): Declare.
+       (deprecated_set_frame_saved_regs_hack): Declare.
+       (deprecated_set_frame_extra_info_hack): Declare.
+
 2003-01-04  Mark Kettenis  <kettenis@gnu.org>
 
        * configure.in: Move code that provides the --enable-gdbtk option
index ecdf408c5cf97ae3c6c8f1941cbda56f1445a5b2..97d61939a5062fcf1b1a54e2003e472204f29e61 100644 (file)
@@ -1310,6 +1310,29 @@ deprecated_update_frame_base_hack (struct frame_info *frame, CORE_ADDR base)
   frame->frame = base;
 }
 
+void
+deprecated_set_frame_saved_regs_hack (struct frame_info *frame,
+                                     CORE_ADDR *saved_regs)
+{
+  frame->saved_regs = saved_regs;
+}
+
+void
+deprecated_set_frame_extra_info_hack (struct frame_info *frame,
+                                     struct frame_extra_info *extra_info)
+{
+  frame->extra_info = extra_info;
+}
+
+struct frame_info *
+deprecated_frame_xmalloc (void)
+{
+  struct frame_info *frame = XMALLOC (struct frame_info);
+  memset (frame, 0, sizeof (struct frame_info));
+  return frame;
+}
+
+
 void
 _initialize_frame (void)
 {
index c9c56476bc4c2ab3e36ea114a03157d1c558762b..283a968bb5bd911588ec568f55f88710231142f9 100644 (file)
@@ -674,4 +674,23 @@ extern void deprecated_update_frame_pc_hack (struct frame_info *frame,
 extern void deprecated_update_frame_base_hack (struct frame_info *frame,
                                               CORE_ADDR base);
 
+/* FIXME: cagney/2003-01-04: Explicitly set the frame's saved_regs
+   and/or extra_info.  Target code is allocating a fake frame and than
+   initializing that to get around the problem of, when creating the
+   inner most frame, there is no where to cache information such as
+   the prologue analysis.  This is fixed by the new unwind mechanism -
+   even the inner most frame has somewhere to store things like the
+   prolog analysis (or at least will once the frame overhaul is
+   finished).  */
+extern void deprecated_set_frame_saved_regs_hack (struct frame_info *frame,
+                                                 CORE_ADDR *saved_regs);
+extern void deprecated_set_frame_extra_info_hack (struct frame_info *frame,
+                                                 struct frame_extra_info *extra_info);
+
+/* FIXME: cagney/2003-01-04: Allocate a frame from the heap (rather
+   than the frame obstack).  Targets do this as a way of saving the
+   prologue analysis from the inner most frame before that frame has
+   been created.  By always creating a frame, this problem goes away.  */
+extern struct frame_info *deprecated_frame_xmalloc (void);
+
 #endif /* !defined (FRAME_H)  */