diff options
author | Slavomir Kaslev <kaslevs@vmware.com> | 2019-06-04 15:48:26 +0300 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-06-10 17:51:22 -0400 |
commit | 8e35e58b2cba0d7eb5c1df89f9bd80cc98585585 (patch) | |
tree | 2e8793e9d5447463227d3530aeac31cc768cecf5 | |
parent | 5b262a34f81fecad07b43e9c1b8ccb9e79a61b4b (diff) | |
download | trace-cmd-8e35e58b2cba0d7eb5c1df89f9bd80cc98585585.tar.gz |
trace-cmd: Append metadata about trace-cmd's version when recording
Add metadata when recording to the output trace about trace-cmd's version and
git commit. When debugging this can be useful to know which version of trace-cmd
recorded this trace.dat file.
Link: http://lore.kernel.org/linux-trace-devel/20190604124826.6716-1-kaslevs@vmware.com
Suggested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=203547
Signed-off-by: Slavomir Kaslev <kaslevs@vmware.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | include/trace-cmd/trace-cmd.h | 1 | ||||
-rw-r--r-- | tracecmd/trace-record.c | 15 |
3 files changed, 18 insertions, 1 deletions
@@ -238,6 +238,9 @@ endif override CFLAGS += $(INCLUDES) $(PLUGIN_DIR_SQ) $(VAR_DIR) override CFLAGS += $(udis86-flags) $(blk-flags) +# Append version define +override CFLAGS += -DTRACECMD_VERSION=\"$(TRACECMD_VERSION)\" +override CFLAGS += -DTRACECMD_VERSION_GIT=\"$(shell git log -1 --pretty=format:"%H")\" CMD_TARGETS = trace-cmd $(BUILD_PYTHON) diff --git a/include/trace-cmd/trace-cmd.h b/include/trace-cmd/trace-cmd.h index 9320098b..8b922102 100644 --- a/include/trace-cmd/trace-cmd.h +++ b/include/trace-cmd/trace-cmd.h @@ -81,6 +81,7 @@ enum { TRACECMD_OPTION_HOOK, TRACECMD_OPTION_OFFSET, TRACECMD_OPTION_CPUCOUNT, + TRACECMD_OPTION_VERSION, }; enum { diff --git a/tracecmd/trace-record.c b/tracecmd/trace-record.c index 2f5fbd95..8aa83455 100644 --- a/tracecmd/trace-record.c +++ b/tracecmd/trace-record.c @@ -3144,6 +3144,19 @@ static void add_uname(struct tracecmd_output *handle) free(str); } +static void add_version(struct tracecmd_output *handle) +{ + char *str; + int len; + + len = asprintf(&str, "%s %s", TRACECMD_VERSION, TRACECMD_VERSION_GIT); + if (len < 0) + return; + + tracecmd_add_option(handle, TRACECMD_OPTION_VERSION, len+1, str); + free(str); +} + static void print_stat(struct buffer_instance *instance) { int cpu; @@ -3181,7 +3194,7 @@ static void add_options(struct tracecmd_output *handle, struct common_record_con tracecmd_add_option(handle, TRACECMD_OPTION_TRACECLOCK, 0, NULL); add_option_hooks(handle); add_uname(handle); - + add_version(handle); } static void record_data(struct common_record_context *ctx) |