void x86_print_intervals(btuwi_status_t intervals) { unwind_interval *u; for(u = intervals.first; u; u = UWI_NEXT(u)) { dump_ui_dbg(u); } }
void x86_dump_intervals(void* addr) { void *s, *e; unwind_interval *u; interval_status intervals; fnbounds_enclosing_addr(addr, &s, &e, NULL); intervals = x86_build_intervals(s, e - s, 0); for(u = (unwind_interval *)intervals.first; u; u = (unwind_interval *)(u->common).next) { dump_ui_dbg(u); } }
void hpcrun_dump_intervals_noisy(void* addr) { unwindr_info_t unwr_info; if (!uw_recipe_map_lookup(addr, &unwr_info)) EMSG("hpcrun_dump_intervals_noisy: bounds of addr %p taken, but no bounds known", addr); void * s = (void*)unwr_info.start; void * e = (void*)unwr_info.end; btuwi_status_t intervals = x86_build_intervals(s, e - s, 1, hpcrun_malloc); unwind_interval * u; for(u = intervals.first; u; u = UWI_NEXT(u)) { dump_ui_dbg(u); } }