static void myvaluesetdump(pmValueSet *xvsp, int idx, int *flagsp) { int sts, flags = *flagsp; DescHash *hp; __pmHashNode *hnp; static __pmHashCtl hash = { 0, 0, NULL }; if ((hnp = __pmHashSearch((unsigned int)xvsp->pmid, &hash)) == NULL) { /* first time for this pmid */ hp = (DescHash *)malloc(sizeof(DescHash)); if (hp == NULL) { __pmNoMem("DescHash", sizeof(DescHash), PM_FATAL_ERR); /*NOTREACHED*/ } if ((sts = pmNameID(xvsp->pmid, &hp->name)) < 0) { printf(" %s: pmNameID: %s\n", pmIDStr(xvsp->pmid), pmErrStr(sts)); free(hp); return; } else { if (xvsp->pmid != pmid_flags && xvsp->pmid != pmid_missed && (sts = pmLookupDesc(xvsp->pmid, &hp->desc)) < 0) { printf(" %s: pmLookupDesc: %s\n", hp->name, pmErrStr(sts)); free(hp->name); free(hp); return; } if ((sts = __pmHashAdd((unsigned int)xvsp->pmid, (void *)hp, &hash)) < 0) { printf(" %s: __pmHashAdd: %s\n", hp->name, pmErrStr(sts)); free(hp->name); free(hp); return; } } } else hp = (DescHash *)hnp->data; if (idx == 0) { if (xvsp->pmid == pmid_flags) { flags = *flagsp = xvsp->vlist[0].value.lval; printf(" flags 0x%x", flags); printf(" (%s) ---\n", pmEventFlagsStr(flags)); return; } else printf(" ---\n"); } if ((flags & PM_EVENT_FLAG_MISSED) && (idx == 1) && (xvsp->pmid == pmid_missed)) { printf(" ==> %d missed event records\n", xvsp->vlist[0].value.lval); return; } mydump(hp->name, &hp->desc, xvsp); }
void QmcEventRecord::dump(QTextStream &os, int instID, uint recordID) const { os << " " << QmcSource::timeStringBrief(&my.timestamp); os << " --- event record [" << recordID << "]"; if (my.flags) { os.setIntegerBase(16); os << " flags 0x" << (uint)my.flags << " (" << pmEventFlagsStr(my.flags) << ")"; os.setIntegerBase(10); } os << " ---" << endl; if (my.flags & PM_EVENT_FLAG_MISSED) os << " ==> " << my.missed << " missed event records" << endl; for (int i = 0; i < my.parameters.size(); i++) my.parameters.at(i).dump(os, instID); }
static void dump_parameter(pmValueSet *xvsp, int index, int *flagsp) { int sts, flags = *flagsp; pmDesc desc; char **names; if ((sts = pmNameAll(xvsp->pmid, &names)) >= 0) { if (index == 0) { if (xvsp->pmid == pmid_flags) { flags = *flagsp = xvsp->vlist[0].value.lval; printf(" flags 0x%x", flags); printf(" (%s) ---\n", pmEventFlagsStr(flags)); free(names); return; } printf(" ---\n"); } if ((flags & PM_EVENT_FLAG_MISSED) && index == 1 && (xvsp->pmid == pmid_missed)) { printf(" ==> %d missed event records\n", xvsp->vlist[0].value.lval); free(names); return; } printf(" %s (", pmIDStr(xvsp->pmid)); __pmPrintMetricNames(stdout, sts, names, " or "); printf("):"); free(names); } else printf(" PMID: %s:", pmIDStr(xvsp->pmid)); if ((sts = pmLookupDesc(xvsp->pmid, &desc)) < 0) { printf(" pmLookupDesc: %s\n", pmErrStr(sts)); return; } printf(" value "); pmPrintValue(stdout, xvsp->valfmt, desc.type, &xvsp->vlist[0], 1); putchar('\n'); }
TracingEvent::TracingEvent(QmcEventRecord const &record, pmID pmid, int inst) { my.timestamp = pmtimevalToReal(record.timestamp()); my.missed = record.missed(); my.flags = record.flags(); my.pmid = pmid; my.inst = inst; my.spanID = record.identifier(); my.rootID = record.parent(); // details displayed about this record (on selection) my.description.append(timeHiResString(my.timestamp)); my.description.append(": flags="); my.description.append(pmEventFlagsStr(record.flags())); if (record.missed()> 0) { my.description.append(" ("); my.description.append(QString::number(record.missed())); my.description.append(" missed)"); } my.description.append("\n"); record.parameterSummary(my.description, inst); }