mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-02 19:46:09 +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:
@ -76,11 +76,23 @@ sentinel_frame_this_id (struct frame_info *this_frame,
|
||||
internal_error (__FILE__, __LINE__, _("sentinel_frame_this_id called"));
|
||||
}
|
||||
|
||||
static struct gdbarch *
|
||||
sentinel_frame_prev_arch (struct frame_info *this_frame,
|
||||
void **this_prologue_cache)
|
||||
{
|
||||
struct frame_unwind_cache *cache = *this_prologue_cache;
|
||||
return get_regcache_arch (cache->regcache);
|
||||
}
|
||||
|
||||
const struct frame_unwind sentinel_frame_unwinder =
|
||||
{
|
||||
SENTINEL_FRAME,
|
||||
sentinel_frame_this_id,
|
||||
sentinel_frame_prev_register
|
||||
sentinel_frame_prev_register,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
sentinel_frame_prev_arch,
|
||||
};
|
||||
|
||||
const struct frame_unwind *const sentinel_frame_unwind = &sentinel_frame_unwinder;
|
||||
|
Reference in New Issue
Block a user