27#include "gdbsupport/gdb_obstack.h"
57 return &(*link)->next;
138 catch (
const gdb_exception &ex)
152 if (ex.error == NOT_AVAILABLE_ERROR)
176 gdb_assert_not_reached (
"frame_unwind_try_unwinder");
195 if (unwinder_from_target != NULL
197 unwinder_from_target))
201 if (unwinder_from_target != NULL
203 unwinder_from_target))
206 for (entry = table->
list; entry != NULL; entry = entry->
next)
210 internal_error (_(
"frame_unwind_find_by_frame failed"));
219 void **this_prologue_cache)
233 return UNWIND_OUTERMOST;
235 return UNWIND_NO_REASON;
277 int regnum,
int new_regnum)
304 struct value *reg_val;
316 struct value *reg_val;
333 struct value *reg_val;
obstack * gdbarch_obstack(gdbarch *arch)
void set(unsigned key, void *datum)
static void store_unsigned_integer(gdb_byte *addr, int len, enum bfd_endian byte_order, ULONGEST val)
const struct frame_unwind dummy_frame_unwind
struct value * value_of_register_lazy(frame_info_ptr frame, int regnum)
const struct frame_id outer_frame_id
const struct frame_unwind dwarf2_tailcall_frame_unwind
int default_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
struct value * frame_unwind_got_memory(frame_info_ptr frame, int regnum, CORE_ADDR addr)
CORE_ADDR default_unwind_pc(struct gdbarch *gdbarch, frame_info_ptr next_frame)
static int frame_unwind_try_unwinder(frame_info_ptr this_frame, void **this_cache, const struct frame_unwind *unwinder)
struct value * frame_unwind_got_optimized(frame_info_ptr frame, int regnum)
void frame_unwind_find_by_frame(frame_info_ptr this_frame, void **this_cache)
struct value * frame_unwind_got_register(frame_info_ptr frame, int regnum, int new_regnum)
void frame_unwind_prepend_unwinder(struct gdbarch *gdbarch, const struct frame_unwind *unwinder)
struct value * frame_unwind_got_address(frame_info_ptr frame, int regnum, CORE_ADDR addr)
enum unwind_stop_reason default_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
static struct frame_unwind_table_entry ** add_unwinder(struct obstack *obstack, const struct frame_unwind *unwinder, struct frame_unwind_table_entry **link)
struct value * frame_unwind_got_bytes(frame_info_ptr frame, int regnum, const gdb_byte *buf)
static const registry< gdbarch >::key< struct frame_unwind_table > frame_unwind_data
static struct frame_unwind_table * get_frame_unwind_table(struct gdbarch *gdbarch)
struct value * frame_unwind_got_constant(frame_info_ptr frame, int regnum, ULONGEST val)
CORE_ADDR default_unwind_sp(struct gdbarch *gdbarch, frame_info_ptr next_frame)
void frame_unwind_append_unwinder(struct gdbarch *gdbarch, const struct frame_unwind *unwinder)
int frame_relative_level(frame_info_ptr fi)
void frame_cleanup_after_sniffer(frame_info_ptr frame)
ULONGEST frame_unwind_register_unsigned(frame_info_ptr next_frame, int regnum)
struct gdbarch * frame_unwind_arch(frame_info_ptr next_frame)
struct gdbarch * get_frame_arch(frame_info_ptr this_frame)
void frame_prepare_for_sniffer(frame_info_ptr frame, const struct frame_unwind *unwind)
unsigned int get_frame_cache_generation()
struct frame_id get_frame_id(frame_info_ptr fi)
#define frame_debug_printf(fmt,...)
#define FRAME_SCOPED_DEBUG_ENTER_EXIT
int gdbarch_pc_regnum(struct gdbarch *gdbarch)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
int gdbarch_sp_regnum(struct gdbarch *gdbarch)
CORE_ADDR gdbarch_addr_bits_remove(struct gdbarch *gdbarch, CORE_ADDR addr)
#define GDBARCH_OBSTACK_ZALLOC(GDBARCH, TYPE)
const struct frame_unwind inline_frame_unwind
int register_size(struct gdbarch *gdbarch, int regnum)
struct type * register_type(struct gdbarch *gdbarch, int regnum)
struct frame_unwind_table_entry * next
const struct frame_unwind * unwinder
struct frame_unwind_table_entry * list
struct frame_unwind_table_entry ** osabi_head
frame_sniffer_ftype * sniffer
const struct frame_unwind * target_get_tailcall_unwinder(void)
const struct frame_unwind * target_get_unwinder(void)
struct value * value_at_lazy(struct type *type, CORE_ADDR addr)
struct value * value_zero(struct type *type, enum lval_type lv)
void set_value_stack(struct value *value, int val)
struct value * allocate_optimized_out_value(struct type *type)
gdb::array_view< gdb_byte > value_contents_raw(struct value *value)
gdb::array_view< gdb_byte > value_contents_writeable(struct value *value)
void pack_long(gdb_byte *buf, struct type *type, LONGEST num)