CLI: Add trace format output to listing
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Mon, 25 Apr 2022 17:44:15 +0000 (13:44 -0400)
committerJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Fri, 19 Aug 2022 16:05:54 +0000 (12:05 -0400)
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Change-Id: I5a11609b342db97e82b5f33481d086b32b48ccc1

src/bin/lttng/commands/list.cpp

index 8636cd101850d5557e489e2671add4ede354e4cc..0ecdddbe76d7e84fa9c382dbefa546b33c834350 100644 (file)
@@ -2129,13 +2129,40 @@ static int list_sessions(const char *session_name)
                for (i = 0; i < count; i++) {
                        if (session_name != NULL) {
                                if (strncmp(sessions[i].name, session_name, NAME_MAX) == 0) {
+                                       uint64_t major, minor;
+                                       lttng_trace_format_descriptor_status tf_status;
+                                       struct lttng_trace_format_descriptor *trace_format_descriptor = NULL;
                                        session_found = 1;
                                        MSG("Recording session %s: [%s%s]", session_name,
                                                        active_string(sessions[i].enabled),
                                                        snapshot_string(sessions[i].snapshot_mode));
                                        if (*sessions[i].path) {
-                                               MSG("%sTrace output: %s\n", indent4, sessions[i].path);
+                                               MSG("%sTrace output: %s", indent4, sessions[i].path);
                                        }
+
+                                       lttng_session_get_trace_format_descriptor(&sessions[i], &trace_format_descriptor);
+                                       lttng_trace_format_descriptor_type format_type = lttng_trace_format_get_type(trace_format_descriptor);
+                                       switch (format_type) {
+                                       case LTTNG_TRACE_FORMAT_DESCRIPTOR_TYPE_CTF_1:
+                                               tf_status = lttng_trace_format_ctf_1_get_version(trace_format_descriptor, &major, &minor);
+                                               break;
+                                       case LTTNG_TRACE_FORMAT_DESCRIPTOR_TYPE_CTF_2:
+                                               tf_status = lttng_trace_format_ctf_2_get_version(trace_format_descriptor, &major, &minor);
+                                               break;
+                                       default:
+                                               tf_status = LTTNG_TRACE_FORMAT_DESCRIPTOR_STATUS_INVALID;
+                                               break;
+                                       }
+
+                                       lttng_trace_format_descriptor_destroy(trace_format_descriptor);
+                                       if (tf_status != LTTNG_TRACE_FORMAT_DESCRIPTOR_STATUS_OK) {
+                                               ERR("Session '%s' not found", session_name);
+                                               ret = CMD_ERROR;
+                                               goto end;
+                                       }
+
+                                       MSG("%sTrace format: CTF %" PRIu64 ".%" PRIu64"\n", indent4, major, minor);
+
                                        memcpy(&the_listed_session,
                                                        &sessions[i],
                                                        sizeof(the_listed_session));
This page took 0.030555 seconds and 5 git commands to generate.