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; }