aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/frame.c23
-rw-r--r--gdb/frame.h19
3 files changed, 51 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ed08918..dc26958 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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
diff --git a/gdb/frame.c b/gdb/frame.c
index ecdf408..97d6193 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1311,6 +1311,29 @@ deprecated_update_frame_base_hack (struct frame_info *frame, CORE_ADDR 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)
{
obstack_init (&frame_cache_obstack);
diff --git a/gdb/frame.h b/gdb/frame.h
index c9c5647..283a968 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -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) */