Esempio n. 1
0
struct refl *
refl_begin (void)
{
  struct refl *result = malloc (sizeof (*result));
  if (result == NULL)
    {
      __refl_seterr (REFL_E_SYSTEM);
      return NULL;
    }

  Dwfl *dwfl = dwfl_begin (&callbacks);
  if (dwfl == NULL)
    {
      __refl_seterr (REFL_E_DWFL);
      goto err_out;
    }

  dwfl_report_begin (dwfl);
  int status = dwfl_linux_proc_report (dwfl, getpid ());
  dwfl_report_end (dwfl, NULL, NULL);

  if (status < 0)
    {
      __refl_seterr (REFL_E_DWFL);
      goto err_out;
    }

  result->dwfl = dwfl;

  return result;

 err_out:
  free (result);
  return NULL;
}
int
main (void)
{
  Dwfl *dwfl = dwfl_begin (&callbacks);

  for (int i = 0; i < 5; ++i)
    {
      dwfl_report_begin (dwfl);
      dwfl_report_module (dwfl, "module1", 0, 10);
      dwfl_report_end (dwfl, NULL, NULL);
    }

  dwfl_end (dwfl);

  return 0;
}