aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlavomir Kaslev <kaslevs@vmware.com>2019-06-04 15:48:26 +0300
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-06-10 17:51:22 -0400
commit8e35e58b2cba0d7eb5c1df89f9bd80cc98585585 (patch)
tree2e8793e9d5447463227d3530aeac31cc768cecf5
parent5b262a34f81fecad07b43e9c1b8ccb9e79a61b4b (diff)
downloadtrace-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--Makefile3
-rw-r--r--include/trace-cmd/trace-cmd.h1
-rw-r--r--tracecmd/trace-record.c15
3 files changed, 18 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index cde45f83..2062d976 100644
--- a/Makefile
+++ b/Makefile
@@ -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)