mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-02 04:27:46 +08:00
* frame.h (frame_unwind_arch): New.
(frame_unwind_caller_arch): Likewise. * frame-unwind.h (frame_prev_arch_ftype): New type. (struct frame_unwind): New member prev_arch. * frame.c (struct frame_info): New member prev_arch. (frame_unwind_arch): New function. (frame_unwind_caller_arch): Likewise.. (get_frame_arch): Reimplement in terms of frame_unwind_arch. * sentinel-frame.c (sentinel_frame_prev_arch): New function. (sentinel_frame_unwinder): Install it. * frame.c (frame_pc_unwind): Use frame_unwind_arch instead of get_frame_arch. (frame_unwind_register_value): Likewise. (frame_unwind_register_signed): Likewise. (frame_unwind_register_unsigned): Likewise. * frame-unwind.c (frame_unwind_got_optimized): Likewise. (frame_unwind_got_register): Likewise. (frame_unwind_got_constant): Likewise. (frame_unwind_got_bytes): Likewise. (frame_unwind_got_address): Likewise. * frame.h (enum frame_type): New value ARCH_FRAME. * frame.c (fprint_frame_type): Handle ARCH_FRAME. * stack.c (print_frame_info): Likewise.
This commit is contained in:
@ -121,6 +121,13 @@ typedef struct value * (frame_prev_register_ftype)
|
||||
typedef void (frame_dealloc_cache_ftype) (struct frame_info *self,
|
||||
void *this_cache);
|
||||
|
||||
/* Assuming the frame chain: (outer) prev <-> this <-> next (inner);
|
||||
use THIS frame, and implicitly the NEXT frame's register unwind
|
||||
method, return PREV frame's architecture. */
|
||||
|
||||
typedef struct gdbarch *(frame_prev_arch_ftype) (struct frame_info *this_frame,
|
||||
void **this_prologue_cache);
|
||||
|
||||
struct frame_unwind
|
||||
{
|
||||
/* The frame's type. Should this instead be a collection of
|
||||
@ -133,6 +140,7 @@ struct frame_unwind
|
||||
const struct frame_data *unwind_data;
|
||||
frame_sniffer_ftype *sniffer;
|
||||
frame_dealloc_cache_ftype *dealloc_cache;
|
||||
frame_prev_arch_ftype *prev_arch;
|
||||
};
|
||||
|
||||
/* Register a frame unwinder, _prepending_ it to the front of the
|
||||
|
Reference in New Issue
Block a user