* 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:
parent
848f574829
commit
36f15f554f
7 changed files with 123 additions and 21 deletions
|
@ -129,7 +129,7 @@ default_frame_sniffer (const struct frame_unwind *self,
|
|||
struct value *
|
||||
frame_unwind_got_optimized (struct frame_info *frame, int regnum)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct gdbarch *gdbarch = frame_unwind_arch (frame);
|
||||
struct value *reg_val;
|
||||
|
||||
reg_val = value_zero (register_type (gdbarch, regnum), not_lval);
|
||||
|
@ -152,7 +152,7 @@ frame_unwind_got_register (struct frame_info *frame, int regnum, int new_regnum)
|
|||
struct value *
|
||||
frame_unwind_got_memory (struct frame_info *frame, int regnum, CORE_ADDR addr)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct gdbarch *gdbarch = frame_unwind_arch (frame);
|
||||
|
||||
return value_at_lazy (register_type (gdbarch, regnum), addr);
|
||||
}
|
||||
|
@ -164,7 +164,7 @@ struct value *
|
|||
frame_unwind_got_constant (struct frame_info *frame, int regnum,
|
||||
ULONGEST val)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct gdbarch *gdbarch = frame_unwind_arch (frame);
|
||||
struct value *reg_val;
|
||||
|
||||
reg_val = value_zero (register_type (gdbarch, regnum), not_lval);
|
||||
|
@ -176,7 +176,7 @@ frame_unwind_got_constant (struct frame_info *frame, int regnum,
|
|||
struct value *
|
||||
frame_unwind_got_bytes (struct frame_info *frame, int regnum, gdb_byte *buf)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct gdbarch *gdbarch = frame_unwind_arch (frame);
|
||||
struct value *reg_val;
|
||||
|
||||
reg_val = value_zero (register_type (gdbarch, regnum), not_lval);
|
||||
|
@ -192,7 +192,7 @@ struct value *
|
|||
frame_unwind_got_address (struct frame_info *frame, int regnum,
|
||||
CORE_ADDR addr)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct gdbarch *gdbarch = frame_unwind_arch (frame);
|
||||
struct value *reg_val;
|
||||
|
||||
reg_val = value_zero (register_type (gdbarch, regnum), not_lval);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue