From be41e9f456f8eb05e1aa2eae0532d0ea5e97a662 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Sat, 5 Apr 2003 18:54:38 +0000 Subject: 2003-04-05 Andrew Cagney * frame.c (frame_func_unwind, get_frame_func): New functions. * frame.h (get_frame_func, frame_func_unwind): Declare. (struct frame_info): Add field "prev_func" for caching the previous frame's function address. * arm-tdep.c (arm_frameless_function_invocation): Combine get_pc_function_start and get_frame_pc into get_frame_func. * sh-tdep.c (sh_nofp_frame_init_saved_regs): Ditto. (sh64_nofp_frame_init_saved_regs): Ditto. * s390-tdep.c (s390_function_start): Ditto. * rs6000-tdep.c (rs6000_pop_frame): Ditto. (rs6000_frameless_function_invocation): Ditto. (rs6000_frame_saved_pc): Ditto. * m68k-tdep.c (m68k_frame_init_saved_regs): Ditto. * ia64-tdep.c (ia64_frame_init_saved_regs): Ditto. * i386-tdep.c (i386_frameless_signal_p): Ditto. (i386_frame_init_saved_regs): Ditto. * hppa-tdep.c (hppa_frame_find_saved_regs): Ditto. * d10v-tdep.c (d10v_frame_unwind_cache): Combine get_pc_function_start and frame_pc_unwind into frame_func_unwind. * cris-tdep.c (cris_frame_init_saved_regs): Ditto. * blockframe.c (frameless_look_for_prologue): Ditto. --- gdb/frame.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'gdb/frame.h') diff --git a/gdb/frame.h b/gdb/frame.h index ad81bd9..1d26209 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -149,6 +149,12 @@ extern struct frame_info *frame_find_by_id (struct frame_id id); this frame. */ extern CORE_ADDR get_frame_pc (struct frame_info *); +/* Following on from the `resume' address. Return the entry point + address of the function containing that resume address, or zero if + that function isn't known. */ +extern CORE_ADDR frame_func_unwind (struct frame_info *fi); +extern CORE_ADDR get_frame_func (struct frame_info *fi); + /* Closely related to the resume address, various symbol table attributes that are determined by the PC. Note that for a normal frame, the PC refers to the resume address after the return, and @@ -410,6 +416,13 @@ struct frame_info int pc_unwind_cache_p; CORE_ADDR pc_unwind_cache; + /* Cached copy of the previous frame's function address. */ + struct + { + CORE_ADDR addr; + int p; + } prev_func; + /* This frame's ID. Note that the frame's ID, base and PC contain redundant information. */ int id_p; -- cgit v1.1