aboutsummaryrefslogtreecommitdiff
path: root/gdb/libunwind-frame.h
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2005-06-08 21:54:23 +0000
committerJeff Johnston <jjohnstn@redhat.com>2005-06-08 21:54:23 +0000
commitc5a27d9ca51b32accd04503e79c8dd01fc47eed2 (patch)
tree3d42d414b51c4ff1bbd55a000fa18bf1ccfe9cd0 /gdb/libunwind-frame.h
parent4dddc1d199cc4301671b6612fcbcb5372f9d6237 (diff)
downloadgdb-c5a27d9ca51b32accd04503e79c8dd01fc47eed2.zip
gdb-c5a27d9ca51b32accd04503e79c8dd01fc47eed2.tar.gz
gdb-c5a27d9ca51b32accd04503e79c8dd01fc47eed2.tar.bz2
2005-06-08 Jeff Johnston <jjohnstn@redhat.com>
David Mosberger <davidm@hpl.hp.com> * ia64-tdep.c (KERNEL_START): New macro. (ia64_pseudo_register_read): Fix code to use libunwind to properly get the rse registers. (ia64_frame_this_id): Mark outermost frame with null frame id. (ia64_sigtramp_frame_prev_register): Fix up debug output. (ia64_access_rse_reg): New accessor function. (ia64_access_mem): Add special logic for accessing the kernel's unwind table. (getunwind_table): Fix for corefiles. (get_kernel_table): Fix to handle vDSO. (ia64_libunwind_frame_this_id): Check for null frame id and don't unwind past pc value of 0. Fix debugging output. (ia64_libunwind_sigtramp_frame_this_id): New function. (ia64_libunwind_sigtramp_frame_prev_register): Ditto. (ia64_libunwind_sigtramp_frame_sniffer): Ditto. (ia64_libunwind_sigtramp_frame_unwind): New unwinder. (ia64_unw_rse_accessors): New libunwind accessors. (ia64_libunwind_descr): Add ia64_unw_rse_accessors. (ia64_gdbarch_init)[HAVE_LIBUNWIND_IA64_H]: Use ia64_libunwind_sigtramp_frame_sniffer instead of ia64_sigtramp_frame_sniffer. * libunwind-frame.c (libunwind_frame_set_descr): Add special register accessors. (libunwind_frame_cache): Add special logic to check for 0 pc value. Check for a signal trampoline frame. (libunwind_frame_this_id): Check if libunwind_frame_cache returns NULL. (libunwind_frame_prev_register): Check for NULL cache. (libunwind_frame_base_address): Ditto. (libunwind_sigtramp_frame_sniffer): New function. (libunwind_get_reg_special): Ditto. (libunwind_load): Add unw_is_signal_frame support. * libunwind-frame.h (struct libunwind_descr): Add special_accessors field. (libunwind_sigtramp_frame_sniffer): New prototype. (libunwind_get_reg_special): Ditto.
Diffstat (limited to 'gdb/libunwind-frame.h')
-rw-r--r--gdb/libunwind-frame.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/libunwind-frame.h b/gdb/libunwind-frame.h
index e47a792..5a90235 100644
--- a/gdb/libunwind-frame.h
+++ b/gdb/libunwind-frame.h
@@ -25,6 +25,7 @@
struct frame_info;
struct frame_id;
+struct gdbarch;
#ifndef LIBUNWIND_FRAME_H
#define LIBUNWIND_FRAME_H 1
@@ -37,9 +38,11 @@ struct libunwind_descr
int (*uw2gdb) (int);
int (*is_fpreg) (int);
void *accessors;
+ void *special_accessors;
};
const struct frame_unwind *libunwind_frame_sniffer (struct frame_info *next_frame);
+const struct frame_unwind *libunwind_sigtramp_frame_sniffer (struct frame_info *next_frame);
void libunwind_frame_set_descr (struct gdbarch *arch, struct libunwind_descr *descr);
@@ -59,6 +62,8 @@ int libunwind_search_unwind_table (void *as, long ip, void *di,
unw_word_t libunwind_find_dyn_list (unw_addr_space_t, unw_dyn_info_t *,
void *);
+int libunwind_get_reg_special (struct gdbarch *gdbarch, int regnum, void *buf);
+
#endif /* libunwind-frame.h */
#endif /* HAVE_LIBUNWIND_H */