Documentation: filter $ctx manpage and --help
[lttng-tools.git] / src / bin / lttng / commands / enable_events.c
index b6c18e142ca6c3e7434e616db17f3499df636d45..0e6bb55d8bc7b618fadcc830c1a7ee736145a3c3 100644 (file)
@@ -154,8 +154,8 @@ static void usage(FILE *ofp)
        fprintf(ofp, "                               TRACE_DEBUG          = 14\n");
        fprintf(ofp, "                               (shortcuts such as \"system\" are allowed)\n");
        fprintf(ofp, "    --filter \'expression\'\n");
-       fprintf(ofp, "                           Filter expression on event fields,\n");
-       fprintf(ofp, "                           event recording depends on evaluation.\n");
+       fprintf(ofp, "                           Filter expression on event fields and context.\n");
+       fprintf(ofp, "                           Event recording depends on evaluation.\n");
        fprintf(ofp, "                           Only specify on first activation of\n");
        fprintf(ofp, "                           a given event within a session.\n");
        fprintf(ofp, "                           Filter only allowed when enabling\n");
@@ -175,7 +175,20 @@ static void usage(FILE *ofp)
        fprintf(ofp, "                           'seqfield1 == \"te*\"'\n");
        fprintf(ofp, "                           In string literals, the escape character is '\\'.\n");
        fprintf(ofp, "                           Use '\\*' for the '*' character, and '\\\\' for\n");
-       fprintf(ofp, "                           the '\\' character.\n");
+       fprintf(ofp, "                           the '\\' character. Wildcard match any sequence of,\n");
+       fprintf(ofp, "                           characters including an empty sub-string (match 0 or\n");
+       fprintf(ofp, "                           more characters).\n");
+       fprintf(ofp, "\n");
+       fprintf(ofp, "                           Context information can be used for filtering. The\n");
+       fprintf(ofp, "                           examples below show usage of context filtering on\n");
+       fprintf(ofp, "                           process name (with a wildcard), process ID range, and\n");
+       fprintf(ofp, "                           unique thread ID for filtering. The process and\n");
+       fprintf(ofp, "                           thread ID of running applications can be found under\n");
+       fprintf(ofp, "                           columns \"PID\" and \"LWP\" of the \"ps -eLf\" command.\n");
+       fprintf(ofp, "\n");
+       fprintf(ofp, "                           '$ctx.procname == \"demo*\"'\n");
+       fprintf(ofp, "                           '$ctx.vpid >= 4433 && $ctx.vpid < 4455'\n");
+       fprintf(ofp, "                           '$ctx.vtid == 1234'\n");
        fprintf(ofp, "\n");
 }
 
@@ -199,7 +212,7 @@ static int parse_probe_opts(struct lttng_event *ev, char *opt)
                strncpy(ev->attr.probe.symbol_name, name, LTTNG_SYMBOL_NAME_LEN);
                ev->attr.probe.symbol_name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0';
                DBG("probe symbol %s", ev->attr.probe.symbol_name);
-               if (strlen(s_hex) == 0) {
+               if (*s_hex == '\0') {
                        ERR("Invalid probe offset %s", s_hex);
                        ret = -1;
                        goto end;
@@ -227,7 +240,7 @@ static int parse_probe_opts(struct lttng_event *ev, char *opt)
        /* Check for address */
        ret = sscanf(opt, "%s", s_hex);
        if (ret > 0) {
-               if (strlen(s_hex) == 0) {
+               if (*s_hex == '\0') {
                        ERR("Invalid probe address %s", s_hex);
                        ret = -1;
                        goto end;
@@ -319,8 +332,11 @@ static int enable_events(char *session_name)
        /* Create lttng domain */
        if (opt_kernel) {
                dom.type = LTTNG_DOMAIN_KERNEL;
+               dom.buf_type = LTTNG_BUFFER_GLOBAL;
        } else if (opt_userspace) {
                dom.type = LTTNG_DOMAIN_UST;
+               /* Default. */
+               dom.buf_type = LTTNG_BUFFER_PER_PID;
        } else {
                ERR("Please specify a tracer (-k/--kernel or -u/--userspace)");
                ret = CMD_ERROR;
@@ -494,7 +510,7 @@ static int enable_events(char *session_name)
 
                        if (opt_loglevel) {
                                MSG("Kernel loglevels are not supported.");
-                               ret = CMD_UNDEFINED;
+                               ret = CMD_UNSUPPORTED;
                                goto error;
                        }
 
@@ -527,7 +543,7 @@ static int enable_events(char *session_name)
                        case LTTNG_EVENT_SYSCALL:
                        default:
                                ERR("Event type not available for user-space tracing");
-                               ret = CMD_UNDEFINED;
+                               ret = CMD_UNSUPPORTED;
                                goto error;
                        }
 
This page took 0.025302 seconds and 4 git commands to generate.