Messages in this thread | | | Date | Tue, 10 Dec 2013 09:04:00 +0200 | From | Adrian Hunter <> | Subject | Re: [PATCH V2 3/3] perf script: Improve srcline display for BTS |
| |
On 09/12/13 20:04, Arnaldo Carvalho de Melo wrote: > Em Fri, Dec 06, 2013 at 09:42:58AM +0200, Adrian Hunter escreveu: >> Change the order of the output to put the srcline last. >> e.g. old format: > > Can you please always provide the command line used, so that people can > quickly reproduce your results, before and after your changes?
OK
perf record -e branches:u -c 1 -d ls
perf script -fip,sym,symoff,addr,srcline
> > - Arnaldo > >> 4028fc main+0x2c (/bin/ls) >> /build/buildd/coreutils-8.20/src/ls.c:1269 => 40d8a0 set_program_name+0x0 (/bin/ls) >> >> new format: >> >> 4028fc main+0x2c (/bin/ls) => 40d8a0 set_program_name+0x0 (/bin/ls) >> /build/buildd/coreutils-8.20/src/ls.c:1269 >> >> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> >> --- >> tools/perf/builtin-script.c | 20 +++++++++++++++----- >> 1 file changed, 15 insertions(+), 5 deletions(-) >> >> diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c >> index 7a571fb..8997b69 100644 >> --- a/tools/perf/builtin-script.c >> +++ b/tools/perf/builtin-script.c >> @@ -428,15 +428,22 @@ static void print_sample_bts(union perf_event *event, >> struct addr_location *al) >> { >> struct perf_event_attr *attr = &evsel->attr; >> + bool print_srcline_last = false; >> >> /* print branch_from information */ >> if (PRINT_FIELD(IP)) { >> - if (!symbol_conf.use_callchain) >> - printf(" "); >> - else >> + unsigned int print_opts = output[attr->type].print_ip_opts; >> + >> + if (symbol_conf.use_callchain && sample->callchain) { >> printf("\n"); >> - perf_evsel__print_ip(evsel, sample, machine, al, >> - output[attr->type].print_ip_opts, >> + } else { >> + printf(" "); >> + if (print_opts & PRINT_IP_OPT_SRCLINE) { >> + print_srcline_last = true; >> + print_opts &= ~PRINT_IP_OPT_SRCLINE; >> + } >> + } >> + perf_evsel__print_ip(evsel, sample, machine, al, print_opts, >> PERF_MAX_STACK_DEPTH); >> } >> >> @@ -448,6 +455,9 @@ static void print_sample_bts(union perf_event *event, >> !output[attr->type].user_set)) >> print_sample_addr(event, sample, machine, thread, attr); >> >> + if (print_srcline_last) >> + map__fprintf_srcline(al->map, al->addr, "\n ", stdout); >> + >> printf("\n"); >> } >> >> -- >> 1.7.11.7 > >
| |