diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/frame.c | 23 | ||||
-rw-r--r-- | gdb/frame.h | 19 |
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) */ |