On Sun, Mar 29, 2020 at 04:22:27PM +0430, ahmadkhorrami wrote: > Hi, > Thanks. Still no change. Sorry, I forgot to say that you should initialize > the "perfCMD" variable to your perf binary path. sure I did that, and your script detected the double entries, now when we show also srcline for them it's silent so there's no change at all for your perf script output? jirka > Regards. > > On 2020-03-29 15:49, Jiri Olsa wrote: > > > On Sun, Mar 29, 2020 at 05:46:57AM +0430, ahmadkhorrami wrote: > > > > > Hi, > > > Each line is correct. I mean addresses match symbols. But some > > > callers and > > > callees do not match. Perhaps callchain misses some callers in > > > between. > > > Regards > > > > right, I missed another case.. how about the change below? > > your script is silent now on my data > > > > jirka > > > > --- > > diff --git a/tools/perf/util/evsel_fprintf.c > > b/tools/perf/util/evsel_fprintf.c > > index 3b4842840db0..fc4fb88937ed 100644 > > --- a/tools/perf/util/evsel_fprintf.c > > +++ b/tools/perf/util/evsel_fprintf.c > > @@ -173,6 +173,8 @@ int sample__fprintf_callchain(struct perf_sample > > *sample, int left_alignment, > > > > if (print_srcline) > > printed += map__fprintf_srcline(map, addr, "\n ", fp); > > + else if (node->srcline) > > + printed += fprintf(fp, " %s", node->srcline); > > > > if (sym && sym->inlined) > > printed += fprintf(fp, " (inlined)"); >