forked from Imagelibrary/binutils-gdb
* arm-tdep.c (arm_frame_chain_valid): Remove unnecessary test.
* d10v-tdep.c (d10v_frame_chain_valid): Remove unnecessary tests. * hppa-tdep.c (hppa_frame_chain_valid): Remove unnecessary test. * blockframe.c: Include "gdbcmd.h" and "command.h". (backtrace_below_main): New variable. (file_frame_chain_valid, func_frame_chain_valid) (nonnull_frame_chain_valid, generic_file_frame_chain_valid) (generic_func_frame_chain_valid): Remove functions. (frame_chain_valid, do_flush_frames_sfunc): New functions. (_initialize_blockframe): New function. * Makefile.in (blockframe.o): Update dependencies. * frame.c (frame_saved_regs_id_unwind, get_prev_frame): Remove FIXME comment. Call frame_chain_valid (). * frame.h: Remove old prototypes. Add prototype for frame_chain_valid and update comments to match. * gdbarch.sh: Change FRAME_CHAIN_VALID into a predicated function. Remove old comment. * gdbarch.h: Regenerated. * gdbarch.c: Regenerated. Plus updates to all other targets not to provide a FRAME_CHAIN_VALID.
This commit is contained in:
@@ -1987,17 +1987,29 @@ extern void set_gdbarch_frame_chain (struct gdbarch *gdbarch, gdbarch_frame_chai
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Define a default FRAME_CHAIN_VALID, in the form that is suitable for
|
||||
most targets. If FRAME_CHAIN_VALID returns zero it means that the
|
||||
given frame is the outermost one and has no caller.
|
||||
|
||||
XXXX - both default and alternate frame_chain_valid functions are
|
||||
deprecated. New code should use dummy frames and one of the generic
|
||||
functions. */
|
||||
#if defined (FRAME_CHAIN_VALID)
|
||||
/* Legacy for systems yet to multi-arch FRAME_CHAIN_VALID */
|
||||
#if !defined (FRAME_CHAIN_VALID_P)
|
||||
#define FRAME_CHAIN_VALID_P() (1)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Default predicate for non- multi-arch targets. */
|
||||
#if (!GDB_MULTI_ARCH) && !defined (FRAME_CHAIN_VALID_P)
|
||||
#define FRAME_CHAIN_VALID_P() (0)
|
||||
#endif
|
||||
|
||||
extern int gdbarch_frame_chain_valid_p (struct gdbarch *gdbarch);
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (FRAME_CHAIN_VALID_P)
|
||||
#error "Non multi-arch definition of FRAME_CHAIN_VALID"
|
||||
#endif
|
||||
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (FRAME_CHAIN_VALID_P)
|
||||
#define FRAME_CHAIN_VALID_P() (gdbarch_frame_chain_valid_p (current_gdbarch))
|
||||
#endif
|
||||
|
||||
/* Default (function) for non- multi-arch platforms. */
|
||||
#if (!GDB_MULTI_ARCH) && !defined (FRAME_CHAIN_VALID)
|
||||
#define FRAME_CHAIN_VALID(chain, thisframe) (generic_func_frame_chain_valid (chain, thisframe))
|
||||
#define FRAME_CHAIN_VALID(chain, thisframe) (internal_error (__FILE__, __LINE__, "FRAME_CHAIN_VALID"), 0)
|
||||
#endif
|
||||
|
||||
typedef int (gdbarch_frame_chain_valid_ftype) (CORE_ADDR chain, struct frame_info *thisframe);
|
||||
|
||||
Reference in New Issue
Block a user