|
@@ -1834,6 +1834,7 @@ static int process_attr(struct perf_tool *tool, union perf_event *event,
|
|
|
struct perf_evlist *evlist;
|
|
|
struct perf_evsel *evsel, *pos;
|
|
|
int err;
|
|
|
+ static struct perf_evsel_script *es;
|
|
|
|
|
|
err = perf_event__process_attr(tool, event, pevlist);
|
|
|
if (err)
|
|
@@ -1842,6 +1843,19 @@ static int process_attr(struct perf_tool *tool, union perf_event *event,
|
|
|
evlist = *pevlist;
|
|
|
evsel = perf_evlist__last(*pevlist);
|
|
|
|
|
|
+ if (!evsel->priv) {
|
|
|
+ if (scr->per_event_dump) {
|
|
|
+ evsel->priv = perf_evsel_script__new(evsel,
|
|
|
+ scr->session->data);
|
|
|
+ } else {
|
|
|
+ es = zalloc(sizeof(*es));
|
|
|
+ if (!es)
|
|
|
+ return -ENOMEM;
|
|
|
+ es->fp = stdout;
|
|
|
+ evsel->priv = es;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (evsel->attr.type >= PERF_TYPE_MAX &&
|
|
|
evsel->attr.type != PERF_TYPE_SYNTH)
|
|
|
return 0;
|