[PATCH] perf annotate: Set the input file name after parsing options.

From: Roland Grunberg
Date: Thu Mar 19 2015 - 13:29:26 EST


The input file name should be set after parse_options has been called if
the '-i' option is to have any effect.

Signed-off-by: Roland Grunberg <rgrunber@xxxxxxxxxx>
---

Not registered to the referenced lists so feel free to CC.

The input file option for perf-annotate seems to be broken and will always
default to 'perf.data'. The perf_data_file path field is being set before
parse_options has initialized input_name.

Current Behaviour :
$ perf record -o datafile uname
Linux
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.007 MB datafile (~322 samples) ]
$ file datafile
datafile: data
$ perf annotate --stdio -i datafile
failed to open perf.data: No such file or directory (try 'perf record' first)

Expected Behaviour :
The 'perf-annotate' call should run against the specified input file.

tools/perf/builtin-annotate.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 747f861..78489bc 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -283,7 +283,6 @@ int cmd_annotate(int argc, const char **argv, const char *prefix __maybe_unused)
},
};
struct perf_data_file file = {
- .path = input_name,
.mode = PERF_DATA_MODE_READ,
};
const struct option options[] = {
@@ -333,6 +332,8 @@ int cmd_annotate(int argc, const char **argv, const char *prefix __maybe_unused)

argc = parse_options(argc, argv, options, annotate_usage, 0);

+ file.path = input_name;
+
if (annotate.use_stdio)
use_browser = 0;
else if (annotate.use_tui)
--
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/