Fix: lttng list -u <name> should only list UST
[lttng-tools.git] / src / bin / lttng / commands / list.c
index c96d27c2aad8bada8657687993412f8f9d25bfc8..fb034a3da2a23e7b7503164853363427b00f2ea2 100644 (file)
@@ -71,7 +71,7 @@ static struct poptOption long_options[] = {
  */
 static void usage(FILE *ofp)
 {
-       fprintf(ofp, "usage: lttng list [OPTIONS] [SESSION [<OPTIONS>]]\n");
+       fprintf(ofp, "usage: lttng list [OPTIONS] [SESSION [SESSION OPTIONS]]\n");
        fprintf(ofp, "\n");
        fprintf(ofp, "With no arguments, list available tracing session(s)\n");
        fprintf(ofp, "\n");
@@ -128,13 +128,23 @@ static
 const char *active_string(int value)
 {
        switch (value) {
-       case 0: return " [inactive]";
-       case 1: return " [active]";
+       case 0: return "inactive";
+       case 1: return "active";
        case -1: return "";
        default: return NULL;
        }
 }
 
+static const char *snapshot_string(int value)
+{
+       switch (value) {
+       case 1:
+               return " snapshot";
+       default:
+               return "";
+       }
+}
+
 static
 const char *enabled_string(int value)
 {
@@ -397,6 +407,8 @@ static int list_ust_event_fields(void)
                        cmdline = get_cmdline_by_pid(cur_pid);
                        MSG("\nPID: %d - Name: %s", cur_pid, cmdline);
                        free(cmdline);
+                       /* Wipe current event since we are about to print a new PID. */
+                       memset(&cur_event, 0, sizeof(cur_event));
                }
                if (strcmp(cur_event.name, event_field_list[i].event.name) != 0) {
                        print_events(&event_field_list[i].event);
@@ -620,13 +632,16 @@ static int list_sessions(const char *session_name)
                if (session_name != NULL) {
                        if (strncmp(sessions[i].name, session_name, NAME_MAX) == 0) {
                                session_found = 1;
-                               MSG("Tracing session %s:%s", session_name, active_string(sessions[i].enabled));
+                               MSG("Tracing session %s: [%s%s]", session_name,
+                                               active_string(sessions[i].enabled),
+                                               snapshot_string(sessions[i].snapshot_mode));
                                MSG("%sTrace path: %s\n", indent4, sessions[i].path);
                                break;
                        }
                } else {
-                       MSG("  %d) %s (%s)%s", i + 1, sessions[i].name, sessions[i].path,
-                                       active_string(sessions[i].enabled));
+                       MSG("  %d) %s (%s) [%s%s]", i + 1, sessions[i].name, sessions[i].path,
+                                       active_string(sessions[i].enabled),
+                                       snapshot_string(sessions[i].snapshot_mode));
                }
        }
 
@@ -786,7 +801,7 @@ int cmd_list(int argc, const char **argv)
                        goto end;
                }
 
-               if (opt_kernel) {
+               if (opt_kernel || opt_userspace) {
                        /* Channel listing */
                        ret = list_channels(opt_channel);
                        if (ret < 0) {
This page took 0.039129 seconds and 4 git commands to generate.