示例#1
0
void
x86_print_intervals(btuwi_status_t intervals)
{
  unwind_interval *u;
  for(u = intervals.first; u; u = UWI_NEXT(u)) {
    dump_ui_dbg(u);
  }
}
示例#2
0
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);
  }
}
示例#3
0
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);
  }
}