[PATCH] perf trace: Warn about --call-graph dwarf invalid parameters

From: Thomas Richter
Date: Thu Jan 11 2018 - 09:17:20 EST


When invoking ./perf trace --call-graph fp|lbr with
additional parameters a warning is printed that these
additional comma separated parameters are silently ignored.

[root@f27 perf]# ./perf trace -vv --no-syscalls --call-graph lbr,1024
callchain: No more arguments needed for --call-graph lbr
[root@f27 perf]#

This does not happen for --call-graph dwarf,4096,4. The additional
parameter 4 is silently ignored and no warning printed.

Before:
[root@f27 perf]# ./perf trace --no-syscalls --call-graph dwarf,4096,4
Please specify something to trace.
[root@f27 perf]#

After:
[root@s35lp76 perf]# ./perf trace --no-syscalls --call-graph dwarf,4096,4
callchain: No more arguments needed for --call-graph dwarf[,xxx]
Please specify something to trace.
[root@s35lp76 perf]#

Signed-off-by: Thomas Richter <tmricht@xxxxxxxxxxxxxxxxxx>
---
tools/perf/util/callchain.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c
index 082505d08d72..59292d582894 100644
--- a/tools/perf/util/callchain.c
+++ b/tools/perf/util/callchain.c
@@ -272,6 +272,10 @@ int parse_callchain_record(const char *arg, struct callchain_param *param)

ret = get_stack_size(tok, &size);
param->dump_size = size;
+ if (strtok_r(NULL, ",", &saveptr)) {
+ pr_err("callchain: No more arguments "
+ "needed for --call-graph dwarf[,xxx]\n");
+ }
}
} else if (!strncmp(name, "lbr", sizeof("lbr"))) {
if (!strtok_r(NULL, ",", &saveptr)) {
--
2.13.4