summaryrefslogtreecommitdiff
path: root/include/dwarf.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/dwarf.h')
-rw-r--r--include/dwarf.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/dwarf.h b/include/dwarf.h
index 334aaadc..3fe6b482 100644
--- a/include/dwarf.h
+++ b/include/dwarf.h
@@ -347,8 +347,21 @@ struct unw_debug_frame_list
struct unw_debug_frame_list *next;
};
+struct dwarf_callback_data
+ {
+ /* in: */
+ unw_word_t ip; /* instruction-pointer we're looking for */
+ unw_proc_info_t *pi; /* proc-info pointer */
+ int need_unwind_info;
+ /* out: */
+ int single_fde; /* did we find a single FDE? (vs. a table) */
+ unw_dyn_info_t di; /* table info (if single_fde is false) */
+ unw_dyn_info_t di_debug; /* additional table info for .debug_frame */
+ };
+
/* Convenience macros: */
#define dwarf_init UNW_ARCH_OBJ (dwarf_init)
+#define dwarf_callback UNW_OBJ (dwarf_callback)
#define dwarf_find_proc_info UNW_OBJ (dwarf_find_proc_info)
#define dwarf_find_debug_frame UNW_OBJ (dwarf_find_debug_frame)
#define dwarf_search_unwind_table UNW_OBJ (dwarf_search_unwind_table)
@@ -364,6 +377,7 @@ struct unw_debug_frame_list
#define dwarf_step UNW_OBJ (dwarf_step)
extern int dwarf_init (void);
+extern int dwarf_callback (struct dl_phdr_info *info, size_t size, void *ptr);
extern int dwarf_find_proc_info (unw_addr_space_t as, unw_word_t ip,
unw_proc_info_t *pi,
int need_unwind_info, void *arg);