52 #ifndef __LITTLE_ENDIAN 53 #define __LITTLE_ENDIAN 1234 56 #define __BIG_ENDIAN 4321 85 unw_proc_info_t *, int,
void *);
88 unw_dyn_info_t *,
void *);
107 #define LIBUNWIND_SO "libunwind-" STRINGIFY(UNW_TARGET) ".so.8" 111 #define LIBUNWIND_SO_7 "libunwind-" STRINGIFY(UNW_TARGET) ".so.7" 153 if (arch_descr == NULL)
172 unw_accessors_t *acc;
175 unw_regnum_t uw_sp_regnum;
214 acc = (unw_accessors_t *) descr->
accessors;
234 error (
_(
"Can't get libunwind sp register."));
264 struct frame_info *this_frame,
void **this_cache)
267 unw_accessors_t *acc;
280 acc = (unw_accessors_t *) descr->
accessors;
321 void **this_cache,
int regnum)
333 unw_regnum_t uw_regnum;
335 struct value *val = NULL;
347 error (
_(
"No registers."));
363 descr->
uw2gdb (sl.u.regnum));
396 void *pi,
int need_unwind_info,
void *args)
399 (unw_dyn_info_t *) di,
400 (unw_proc_info_t *) pi, need_unwind_info,
411 unw_accessors_t *acc;
425 acc = (unw_accessors_t *) descr->
accessors;
459 unw_accessors_t *acc;
463 unw_regnum_t uw_regnum;
512 char *so_error = NULL;
517 so_error = xstrdup (dlerror ());
518 #ifdef LIBUNWIND_SO_7 526 #ifdef LIBUNWIND_SO_7 static unw_step_p_ftype * unw_step_p
#define target_has_registers
static char * get_saveloc_name
void libunwind_frame_set_descr(struct gdbarch *gdbarch, struct libunwind_descr *descr)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
struct value * frame_unwind_got_bytes(struct frame_info *frame, int regnum, gdb_byte *buf)
static unw_get_fpreg_p_ftype * unw_get_fpreg_p
CORE_ADDR get_frame_pc(struct frame_info *frame)
int() unw_step_p_ftype(unw_cursor_t *)
static char * is_signal_frame_name
static void * libunwind_descr_init(struct gdbarch *gdbarch)
static unw_destroy_addr_space_p_ftype * unw_destroy_addr_space_p
void libunwind_frame_dealloc_cache(struct frame_info *self, void *this_cache)
struct value * frame_unwind_got_memory(struct frame_info *frame, int regnum, CORE_ADDR addr)
static char * find_dyn_list_name
void libunwind_frame_this_id(struct frame_info *this_frame, void **this_cache, struct frame_id *this_id)
static char * search_unwind_table_name
unw_word_t() unw_find_dyn_list_p_ftype(unw_addr_space_t, unw_dyn_info_t *, void *)
static struct gdbarch_data * libunwind_descr_handle
#define FRAME_OBSTACK_ZALLOC(TYPE)
static unw_find_dyn_list_p_ftype * unw_find_dyn_list_p
static char * init_remote_name
#define GDBARCH_OBSTACK_ZALLOC(GDBARCH, TYPE)
struct value * frame_unwind_got_constant(struct frame_info *frame, int regnum, ULONGEST val)
int() unw_get_reg_p_ftype(unw_cursor_t *, unw_regnum_t, unw_word_t *)
static char * get_reg_name
void _initialize_libunwind_frame(void)
int() unw_search_unwind_table_p_ftype(unw_addr_space_t, unw_word_t, unw_dyn_info_t *, unw_proc_info_t *, int, void *)
static unw_init_remote_p_ftype * unw_init_remote_p
int gdbarch_sp_regnum(struct gdbarch *gdbarch)
static char * destroy_addr_space_name
int libunwind_is_initialized(void)
void fprintf_unfiltered(struct ui_file *stream, const char *format,...)
unw_addr_space_t() unw_create_addr_space_p_ftype(unw_accessors_t *, int)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
static unw_is_signal_frame_p_ftype * unw_is_signal_frame_p
static char * create_addr_space_name
static unw_get_saveloc_p_ftype * unw_get_saveloc_p
static unw_search_unwind_table_p_ftype * unw_search_unwind_table_p
static unw_create_addr_space_p_ftype * unw_create_addr_space_p
static int libunwind_load(void)
int libunwind_get_reg_special(struct gdbarch *gdbarch, struct regcache *regcache, int regnum, void *buf)
int libunwind_sigtramp_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
int() unw_is_signal_frame_p_ftype(unw_cursor_t *)
int libunwind_frame_sniffer(const struct frame_unwind *self, struct frame_info *this_frame, void **this_cache)
struct value * frame_unwind_got_register(struct frame_info *frame, int regnum, int new_regnum)
struct value * libunwind_frame_prev_register(struct frame_info *this_frame, void **this_cache, int regnum)
int() unw_get_fpreg_p_ftype(unw_cursor_t *, unw_regnum_t, unw_fpreg_t *)
void deprecated_set_gdbarch_data(struct gdbarch *gdbarch, struct gdbarch_data *data, void *pointer)
int() unw_init_remote_p_ftype(unw_cursor_t *, unw_addr_space_t, void *)
static struct libunwind_frame_cache * libunwind_frame_cache(struct frame_info *this_frame, void **this_cache)
unw_word_t libunwind_find_dyn_list(unw_addr_space_t as, unw_dyn_info_t *di, void *arg)
static struct libunwind_descr * libunwind_descr(struct gdbarch *gdbarch)
int register_size(struct gdbarch *gdbarch, int regnum)
int() unw_get_saveloc_p_ftype(unw_cursor_t *, unw_regnum_t, unw_save_loc_t *)
static char * get_fpreg_name
void() unw_destroy_addr_space_p_ftype(unw_addr_space_t)
int libunwind_search_unwind_table(void *as, long ip, void *di, void *pi, int need_unwind_info, void *args)
static unw_get_reg_p_ftype * unw_get_reg_p
CORE_ADDR get_frame_func(struct frame_info *this_frame)
void error(const char *fmt,...)
static int libunwind_initialized
struct gdbarch_data * gdbarch_data_register_post_init(gdbarch_data_post_init_ftype *post_init)
struct gdbarch * get_frame_arch(struct frame_info *this_frame)