From c8b8a898312e1f6781b35ab18d93c856e9e876bd Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Sat, 4 Jan 2003 13:55:30 +0000 Subject: [PATCH] 2003-01-04 Andrew Cagney * 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 | 9 +++++++++ gdb/frame.c | 23 +++++++++++++++++++++++ gdb/frame.h | 19 +++++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ed0891865f2..dc26958ba91 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2003-01-04 Andrew Cagney + + * 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 * configure.in: Move code that provides the --enable-gdbtk option diff --git a/gdb/frame.c b/gdb/frame.c index ecdf408c5cf..97d61939a50 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -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) { diff --git a/gdb/frame.h b/gdb/frame.h index c9c56476bc4..283a968bb5b 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) */ -- 2.30.2