Em Thu, Aug 20, 2015 at 11:26:45AM +0300, Adrian Hunter escreveu: > Patch "perf script: Don't assume evsel position of tracking events" > changed 'perf script' to use 'perf_evlist__id2evsel()'. That results > in a segfault if there is more than 1 event and there are > synthesized mmap events e.g. > > $ perf record -e cycles,instructions -p$$ sleep 1 > $ perf script --show-mmap-events > Segmentation fault (core dumped)
Please next time tell what branch this affects, otherwise I'll have to try it on perf/urgent, notice that the problem is not there, then try it again on perf/core, where it is, to then apply... Applied to perf/core. Thanks, - Arnaldo > That happens because these synthesized events have an 'id' of zero > which does not match any 'evsel'. > > Currently, these synthesized events use the sample type of the first > evsel. > > Change 'perf_evlist__id2evsel()' to reflect that which also makes > it consistent with 'perf_evlist__event2evsel()'. > > Signed-off-by: Adrian Hunter <[email protected]> > --- > tools/perf/util/evlist.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c > index 373f65b02545..e9a5d432902c 100644 > --- a/tools/perf/util/evlist.c > +++ b/tools/perf/util/evlist.c > @@ -573,7 +573,7 @@ struct perf_evsel *perf_evlist__id2evsel(struct > perf_evlist *evlist, u64 id) > { > struct perf_sample_id *sid; > > - if (evlist->nr_entries == 1) > + if (evlist->nr_entries == 1 || !id) > return perf_evlist__first(evlist); > > sid = perf_evlist__id2sid(evlist, id); > -- > 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

