Hi, It has been observed that pmcstat can run out of buckets leading to an assert, when converting trace data into gprof compatible format. Applying the following patch, temporarily solves the problem: diff --git a/usr.sbin/pmcstat/pmcpl_gprof.c b/usr.sbin/pmcstat/pmcpl_gprof.c index 9ff78e8..4a8849f 100644 --- a/usr.sbin/pmcstat/pmcpl_gprof.c +++ b/usr.sbin/pmcstat/pmcpl_gprof.c @@ -445,8 +445,8 @@ pmcpl_gmon_process(struct pmcstat_process *pp, struct pmcstat_pmcrecord *pmcr, image, pmcid); pgf->pgf_pmcid = pmcid; assert(image->pi_end > image->pi_start); - pgf->pgf_nbuckets = (image->pi_end - image->pi_start) / - FUNCTION_ALIGNMENT; /* see <machine/profile.h> */ + pgf->pgf_nbuckets = (image->pi_end - image->pi_start); // / + // FUNCTION_ALIGNMENT; /* see <machine/profile.h> */ pgf->pgf_ndatabytes = sizeof(struct gmonhdr) + pgf->pgf_nbuckets * sizeof(HISTCOUNTER); pgf->pgf_nsamples = 0; --HPS
I'd say this calculation was fixed with the use of the howmany macro?
Closing since this seems to be fixed by the use of the "howmany" macro.