Add usage for --exclude option
[lttng-tools.git] / src / bin / lttng / commands / enable_events.c
index a7b70c3f9dada482aa76cdd3113ccfa61535d4e0..6ea3c919f1dc8806cb2de0e4515d81a0e06d34f2 100644 (file)
@@ -43,6 +43,7 @@ static char *opt_function;
 static char *opt_function_entry_symbol;
 static char *opt_channel_name;
 static char *opt_filter;
+static char *opt_exclude;
 #if 0
 /* Not implemented yet */
 static char *opt_cmd_name;
@@ -61,6 +62,7 @@ enum {
        OPT_LOGLEVEL_ONLY,
        OPT_LIST_OPTIONS,
        OPT_FILTER,
+       OPT_EXCLUDE,
 };
 
 static struct lttng_handle *handle;
@@ -89,6 +91,7 @@ static struct poptOption long_options[] = {
        {"loglevel-only",  0,     POPT_ARG_STRING, 0, OPT_LOGLEVEL_ONLY, 0, 0},
        {"list-options", 0, POPT_ARG_NONE, NULL, OPT_LIST_OPTIONS, NULL, NULL},
        {"filter",         'f', POPT_ARG_STRING, &opt_filter, OPT_FILTER, 0, 0},
+       {"exclude",        'x', POPT_ARG_STRING, &opt_exclude, OPT_EXCLUDE, 0, 0},
        {0, 0, 0, 0, 0, 0, 0}
 };
 
@@ -192,6 +195,12 @@ static void usage(FILE *ofp)
        fprintf(ofp, "                           '$ctx.procname == \"demo*\"'\n");
        fprintf(ofp, "                           '$ctx.vpid >= 4433 && $ctx.vpid < 4455'\n");
        fprintf(ofp, "                           '$ctx.vtid == 1234'\n");
+       fprintf(ofp, "  -x, --exclude LIST\n");
+       fprintf(ofp, "                           Add exclusions to UST tracepoints:\n");
+       fprintf(ofp, "                           Events that match any of the items\n");
+       fprintf(ofp, "                           in the comma-separated LIST are not\n");
+       fprintf(ofp, "                           enabled, even if they match a wildcard\n");
+       fprintf(ofp, "                           definition of the event.\n");
        fprintf(ofp, "\n");
 }
 
@@ -346,6 +355,9 @@ static int enable_events(char *session_name)
                        ret = CMD_ERROR;
                        goto error;
                }
+               if (opt_loglevel) {
+                       WARN("Kernel loglevels are not supported.");
+               }
        }
 
        /* Create lttng domain */
@@ -419,7 +431,7 @@ static int enable_events(char *session_name)
 
                        switch (opt_event_type) {
                        case LTTNG_EVENT_TRACEPOINT:
-                               if (opt_loglevel) {
+                               if (opt_loglevel && dom.type != LTTNG_DOMAIN_KERNEL) {
                                        MSG("All %s tracepoints are enabled in channel %s for loglevel %s",
                                                        get_domain_str(dom.type),
                                                        print_channel_name(channel_name),
@@ -428,7 +440,6 @@ static int enable_events(char *session_name)
                                        MSG("All %s tracepoints are enabled in channel %s",
                                                        get_domain_str(dom.type),
                                                        print_channel_name(channel_name));
-
                                }
                                break;
                        case LTTNG_EVENT_SYSCALL:
@@ -438,7 +449,7 @@ static int enable_events(char *session_name)
                                }
                                break;
                        case LTTNG_EVENT_ALL:
-                               if (opt_loglevel) {
+                               if (opt_loglevel && dom.type != LTTNG_DOMAIN_KERNEL) {
                                        MSG("All %s events are enabled in channel %s for loglevel %s",
                                                        get_domain_str(dom.type),
                                                        print_channel_name(channel_name),
@@ -533,12 +544,6 @@ static int enable_events(char *session_name)
                                goto error;
                        }
 
-                       if (opt_loglevel) {
-                               MSG("Kernel loglevels are not supported.");
-                               ret = CMD_UNSUPPORTED;
-                               goto error;
-                       }
-
                        /* kernel loglevels not implemented */
                        ev.loglevel_type = LTTNG_EVENT_LOGLEVEL_ALL;
                } else if (opt_userspace) {             /* User-space tracer action */
@@ -718,6 +723,8 @@ int cmd_enable_events(int argc, const char **argv)
                        goto end;
                case OPT_FILTER:
                        break;
+               case OPT_EXCLUDE:
+                       break;
                default:
                        usage(stderr);
                        ret = CMD_UNDEFINED;
This page took 0.026734 seconds and 5 git commands to generate.