aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/builtin-record.c10
-rw-r--r--tools/perf/builtin-report.c4
-rw-r--r--tools/perf/util/parse-events.c2
3 files changed, 13 insertions, 3 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 4ef78a5e6f32..68a9be0d1513 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -43,6 +43,7 @@ static int call_graph = 0;
43static int verbose = 0; 43static int verbose = 0;
44static int inherit_stat = 0; 44static int inherit_stat = 0;
45static int no_samples = 0; 45static int no_samples = 0;
46static int sample_address = 0;
46 47
47static long samples; 48static long samples;
48static struct timeval last_read; 49static struct timeval last_read;
@@ -313,6 +314,10 @@ static void pid_synthesize_mmap_samples(pid_t pid)
313 if (*pbf == 'x') { /* vm_exec */ 314 if (*pbf == 'x') { /* vm_exec */
314 char *execname = strchr(bf, '/'); 315 char *execname = strchr(bf, '/');
315 316
317 /* Catch VDSO */
318 if (execname == NULL)
319 execname = strstr(bf, "[vdso]");
320
316 if (execname == NULL) 321 if (execname == NULL)
317 continue; 322 continue;
318 323
@@ -401,6 +406,9 @@ static void create_counter(int counter, int cpu, pid_t pid)
401 if (inherit_stat) 406 if (inherit_stat)
402 attr->inherit_stat = 1; 407 attr->inherit_stat = 1;
403 408
409 if (sample_address)
410 attr->sample_type |= PERF_SAMPLE_ADDR;
411
404 if (call_graph) 412 if (call_graph)
405 attr->sample_type |= PERF_SAMPLE_CALLCHAIN; 413 attr->sample_type |= PERF_SAMPLE_CALLCHAIN;
406 414
@@ -645,6 +653,8 @@ static const struct option options[] = {
645 "be more verbose (show counter open errors, etc)"), 653 "be more verbose (show counter open errors, etc)"),
646 OPT_BOOLEAN('s', "stat", &inherit_stat, 654 OPT_BOOLEAN('s', "stat", &inherit_stat,
647 "per thread counts"), 655 "per thread counts"),
656 OPT_BOOLEAN('d', "data", &sample_address,
657 "Sample addresses"),
648 OPT_BOOLEAN('n', "no-samples", &no_samples, 658 OPT_BOOLEAN('n', "no-samples", &no_samples,
649 "don't sample"), 659 "don't sample"),
650 OPT_END() 660 OPT_END()
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 430a195b8589..a118bc77286d 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -2005,9 +2005,9 @@ static const struct option options[] = {
2005 "regex filter to identify parent, see: '--sort parent'"), 2005 "regex filter to identify parent, see: '--sort parent'"),
2006 OPT_BOOLEAN('x', "exclude-other", &exclude_other, 2006 OPT_BOOLEAN('x', "exclude-other", &exclude_other,
2007 "Only display entries with parent-match"), 2007 "Only display entries with parent-match"),
2008 OPT_CALLBACK_DEFAULT('c', "callchain", NULL, "output_type,min_percent", 2008 OPT_CALLBACK_DEFAULT('g', "call-graph", NULL, "output_type,min_percent",
2009 "Display callchains using output_type and min percent threshold. " 2009 "Display callchains using output_type and min percent threshold. "
2010 "Default: flat,0", &parse_callchain_opt, callchain_default_opt), 2010 "Default: fractal,0.5", &parse_callchain_opt, callchain_default_opt),
2011 OPT_STRING('d', "dsos", &dso_list_str, "dso[,dso...]", 2011 OPT_STRING('d', "dsos", &dso_list_str, "dso[,dso...]",
2012 "only consider symbols in these dsos"), 2012 "only consider symbols in these dsos"),
2013 OPT_STRING('C', "comms", &comm_list_str, "comm[,comm...]", 2013 OPT_STRING('C', "comms", &comm_list_str, "comm[,comm...]",
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 518a33affe1a..d18c98edd00d 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -436,7 +436,7 @@ void print_events(void)
436 436
437 for (i = 0; i < ARRAY_SIZE(event_symbols); i++, syms++) { 437 for (i = 0; i < ARRAY_SIZE(event_symbols); i++, syms++) {
438 type = syms->type + 1; 438 type = syms->type + 1;
439 if (type > ARRAY_SIZE(event_type_descriptors)) 439 if (type >= ARRAY_SIZE(event_type_descriptors))
440 type = 0; 440 type = 0;
441 441
442 if (type != prev_type) 442 if (type != prev_type)