Re: [PATCH 05/10] perf hists: Fixup addr snprintf width on 32 bitarches

From: Joe Perches
Date: Fri Aug 06 2010 - 11:35:44 EST


On Fri, 2010-08-06 at 11:29 -0300, Arnaldo Carvalho de Melo wrote:
> Em Thu, Aug 05, 2010 at 06:58:07PM -0700, Joe Perches escreveu:
> > On Thu, 2010-08-05 at 22:46 -0300, Arnaldo Carvalho de Melo wrote:
> > > From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> > > By using BITS_PER_LONG/4 as the width specifier.
> > []
> > > diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> > > index 1c61a4f..b62a553 100644
> > > --- a/tools/perf/util/sort.c
> > > +++ b/tools/perf/util/sort.c
> > []
> > > - ret += repsep_snprintf(bf, size, "%#018llx %c ", self->ip, o);
> > > + ret += repsep_snprintf(bf, size, "%*Lx %c ",
> > > + BITS_PER_LONG / 4, self->ip, o);
> > []
> > > - ret += repsep_snprintf(bf + ret, size - ret, "%#016llx", self->ip);
> > > + ret += repsep_snprintf(bf + ret, size - ret, "%*Lx",
> > > + BITS_PER_LONG / 4, self->ip);
> >
> > This drops leading 0's.
>
> Is this a problem? This removes clutter from the output, right?

Dunno, you made an output that looked like a pointer address,

64 bit:

"0x0123456789abcdef" now is " 123456789abcdef"

32 bit:

"0x0000000001234567" now is " 1234567"

snprintf(loc, size, "%#0*lx", BITS_PER_LONG / 4 + 2, (long))
might be better.

snprintf(loc, size, "%p", (void)long)
might be best.





--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/