27 #ifdef HAVE_LIBUNWIND_IA64_H
32 ia64_vms_find_proc_info_x (unw_addr_space_t as, unw_word_t ip,
34 int need_unwind_info,
void *arg)
43 unsigned int info_len;
46 annex + 2, buf, 0,
sizeof (buf));
48 if (res !=
sizeof (buf))
51 pi->format = UNW_INFO_FORMAT_REMOTE_TABLE;
60 pi->unwind_info = NULL;
61 pi->unwind_info_size = 0;
71 return -UNW_EBADVERSION;
73 pi->unwind_info_size = 8 * info_len;
76 pi->unwind_info =
xmalloc (pi->unwind_info_size);
79 pi->unwind_info, pi->unwind_info_size);
82 xfree (pi->unwind_info);
83 pi->unwind_info = NULL;
92 pi->lsda = table_addr + 8 + pi->unwind_info_size;
106 ia64_vms_put_unwind_info (unw_addr_space_t as,
107 unw_proc_info_t *pip,
void *arg)
116 ia64_vms_get_dyn_info_list (unw_addr_space_t as,
117 unw_word_t *dilap,
void *arg)
123 static unw_accessors_t ia64_vms_unw_accessors;
124 static unw_accessors_t ia64_vms_unw_rse_accessors;
137 #ifdef HAVE_LIBUNWIND_IA64_H
139 ia64_vms_unw_accessors = ia64_unw_accessors;
140 ia64_vms_unw_accessors.find_proc_info = ia64_vms_find_proc_info_x;
141 ia64_vms_unw_accessors.put_unwind_info = ia64_vms_put_unwind_info;
142 ia64_vms_unw_accessors.get_dyn_info_list_addr = ia64_vms_get_dyn_info_list;
144 ia64_vms_unw_rse_accessors = ia64_unw_rse_accessors;
145 ia64_vms_unw_rse_accessors.find_proc_info = ia64_vms_find_proc_info_x;
146 ia64_vms_unw_rse_accessors.put_unwind_info = ia64_vms_put_unwind_info;
147 ia64_vms_unw_rse_accessors.get_dyn_info_list_addr = ia64_vms_get_dyn_info_list;
149 ia64_vms_libunwind_descr = ia64_libunwind_descr;
150 ia64_vms_libunwind_descr.accessors = &ia64_vms_unw_accessors;
151 ia64_vms_libunwind_descr.special_accessors = &ia64_vms_unw_rse_accessors;
struct gdbarch * target_gdbarch(void)
ULONGEST extract_unsigned_integer(const gdb_byte *, int, enum bfd_endian)
void libunwind_frame_set_descr(struct gdbarch *gdbarch, struct libunwind_descr *descr)
initialize_file_ftype _initialize_ia64_vms_tdep
const struct floatformat * floatformats_ia64_quad[BFD_ENDIAN_UNKNOWN]
struct target_ops current_target
void initialize_file_ftype(void)
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
static void ia64_openvms_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
const char * core_addr_to_string(const CORE_ADDR addr)
LONGEST target_read(struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *buf, ULONGEST offset, LONGEST len)
void set_gdbarch_long_double_format(struct gdbarch *gdbarch, const struct floatformat **long_double_format)
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))