diff options
Diffstat (limited to 'tools/perf/builtin-script.c')
-rw-r--r-- | tools/perf/builtin-script.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index e3ce2f34d3ad..46011235af5d 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c | |||
@@ -339,7 +339,7 @@ static void set_print_ip_opts(struct perf_event_attr *attr) | |||
339 | */ | 339 | */ |
340 | static int perf_session__check_output_opt(struct perf_session *session) | 340 | static int perf_session__check_output_opt(struct perf_session *session) |
341 | { | 341 | { |
342 | int j; | 342 | unsigned int j; |
343 | struct perf_evsel *evsel; | 343 | struct perf_evsel *evsel; |
344 | 344 | ||
345 | for (j = 0; j < PERF_TYPE_MAX; ++j) { | 345 | for (j = 0; j < PERF_TYPE_MAX; ++j) { |
@@ -388,17 +388,20 @@ static int perf_session__check_output_opt(struct perf_session *session) | |||
388 | struct perf_event_attr *attr; | 388 | struct perf_event_attr *attr; |
389 | 389 | ||
390 | j = PERF_TYPE_TRACEPOINT; | 390 | j = PERF_TYPE_TRACEPOINT; |
391 | evsel = perf_session__find_first_evtype(session, j); | ||
392 | if (evsel == NULL) | ||
393 | goto out; | ||
394 | 391 | ||
395 | attr = &evsel->attr; | 392 | evlist__for_each(session->evlist, evsel) { |
393 | if (evsel->attr.type != j) | ||
394 | continue; | ||
395 | |||
396 | attr = &evsel->attr; | ||
396 | 397 | ||
397 | if (attr->sample_type & PERF_SAMPLE_CALLCHAIN) { | 398 | if (attr->sample_type & PERF_SAMPLE_CALLCHAIN) { |
398 | output[j].fields |= PERF_OUTPUT_IP; | 399 | output[j].fields |= PERF_OUTPUT_IP; |
399 | output[j].fields |= PERF_OUTPUT_SYM; | 400 | output[j].fields |= PERF_OUTPUT_SYM; |
400 | output[j].fields |= PERF_OUTPUT_DSO; | 401 | output[j].fields |= PERF_OUTPUT_DSO; |
401 | set_print_ip_opts(attr); | 402 | set_print_ip_opts(attr); |
403 | goto out; | ||
404 | } | ||
402 | } | 405 | } |
403 | } | 406 | } |
404 | 407 | ||