58 #define STR(s) case s: return #s 77 TMSG(SUSPICIOUS_INTERVAL,
"suspicious interval for pc = %p", pc);
97 x86recipe->
reg = *reg;
146 snprintf(buf, len,
"UWI: [%8p, %8p) " 147 "ra_status=%14s sp_ra_pos=%4d sp_bp_pos=%4d " 148 "bp_status=%12s bp_ra_pos=%4d bp_bp_pos=%4d " 149 "next=%14p prev_canon=%14p tail_call=%d\n",
178 if (dump_to_stderr) {
179 fprintf(stderr,
"%s", buf);
201 fprintf(stderr,
"%s", buf);
unwind_interval * new_ui(char *start, ra_loc ra_status, const x86registers_t *reg)
void dump_ui_troll(unwind_interval *u)
void link_ui(unwind_interval *current, unwind_interval *next)
uwi_t * bitree_uwi_rootval(bitree_uwi_t *tree)
void dump_ui_log(unwind_interval *u)
void uw_recipe_print(void *recipe)
void dump_ui_dbg(unwind_interval *u)
void suspicious_interval(void *pc)
static const char * bp_status_string(bp_loc l)
#define UWI_RECIPE(btuwi)
bitree_uwi_t * bitree_uwi_malloc(unwinder_t uw, size_t recipe_size)
static void dump_ui_str(unwind_interval *u, char *buf, size_t len)
void hpcrun_stats_num_unwind_intervals_total_inc(void)
struct bitree_uwi_s bitree_uwi_t
void dump_ui(unwind_interval *u, int dump_to_stderr)
#define UWI_END_ADDR(btuwi)
void dump_ui_stderr(unwind_interval *u)
void uw_recipe_tostr(void *recipe, char str[], unwinder_t uw)
unwind_interval * fluke_ui(char *loc, unsigned int pos)
#define UWI_START_ADDR(btuwi)
static const char * ra_status_string(ra_loc l)
void x86recipe_print(void *recipe)
bitree_uwi_t unwind_interval
enum unwinder_e unwinder_t
void set_ui_canonical(unwind_interval *u, unwind_interval *value)
void x86recipe_tostr(void *recipe, char str[])
bitree_uwi_t * prev_canonical
void hpcrun_stats_num_unwind_intervals_suspicious_inc(void)
void libunw_uw_recipe_tostr(void *uwr, char str[])
void bitree_uwi_set_rightsubtree(bitree_uwi_t *tree, bitree_uwi_t *subtree)