[DTrace-devel] [PATCH 13/17] dtprobed, usdt parser: add support for ELF notes-based USDT
Kris Van Hees
kris.van.hees at oracle.com
Sat Jun 7 23:44:48 UTC 2025
On Sat, Jun 07, 2025 at 07:49:29PM +0100, Nick Alcock wrote:
> On 7 Jun 2025, Kris Van Hees verbalised:
>
> > Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
>
> Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Thanks.
> Modulo this piece of utter pedantry:
>
> > + * rc = 1: All blocks written successfully.
> > + * rc = 0: Some blocks not written.
> > + * rc = -1: An erorr happened (some blocks not written).
>
> Erorr is an erorr!
Thanks.
> > + if (prp->fun != NULL) {
> > + ptp->next = prp->next;
> > + ptp->nargc = prp->nargc;
> > + ptp->nargs = prp->nargs;
> > + ptp->nargsz = prp->nargsz;
> > + ptp->xargc = prp->xargc;
> > + ptp->xargs = prp->xargs;
> > + ptp->xargsz = prp->xargsz;
> > + ptp->xmap = prp->xmap;
> > + prp->next = ptp;
> > + prp->ntp++;
> > + } else {
> > + dt_htab_delete(prbmap, ptp);
> > + dt_htab_insert(pvp->pmap, ptp);
> > + ptp->ntp = 1;
> > + ptp->nargc = prp->nargc;
> > + ptp->nargs = prp->nargs;
> > + ptp->nargsz = prp->nargsz;
> > + ptp->xargc = prp->xargc;
> > + ptp->xargs = prp->xargs;
> > + ptp->xargsz = prp->xargsz;
> > + ptp->xmap = prp->xmap;
> > + pvp->probec++;
> > + }
> > + }
> > +
> > +prvit = NULL;
> > +while ((pvp = dt_htab_next(prvmap, &prvit)) != NULL) {
> > + dt_htab_next_t *prbit = NULL;
> > + dt_probe_t *prp;
> > +
> > + dt_dbg_usdt(" Provider '%s' with %d probe%s:\n", pvp->name, pvp->probec, pvp->probec == 1 ? "" : "s");
> > + while ((prp = dt_htab_next(pvp->pmap, &prbit)) != NULL) {
> > + dt_dbg_usdt(" Probe %s:%s:%s:%s (off %x)\n", prp->prv, prp->mod, prp->fun ? prp->fun : "", prp->prb, prp->fun ? prp->off : -1);
> > + while ((prp = prp->next) != NULL)
> > + dt_dbg_usdt(" Probe %s:%s:%s:%s (off %x)\n", prp->prv, prp->mod, prp->fun ? prp->fun : "", prp->prb, prp->fun ? prp->off : -1);
> > + }
> > +}
> > +
> > + /* Emit any provider that has tracepoints. */
> > + prvit = NULL;
> > + while ((pvp = dt_htab_next(prvmap, &prvit)) != NULL) {
> > + if (pvp->probec > 0 && emit_provider(out, dhp, pvp) == -1)
> > + goto err;
> > + }
> > +
> > + goto out;
>
> Going by the indentation, the outdented bit looks like debugging code
> you either forgot to remove, or forgot to reindent :)
Ah yes, thanks.
More information about the DTrace-devel
mailing list