static char *opt_session_name;
static int opt_pid_all;
static int opt_userspace;
+static char *opt_cmd_name;
static pid_t opt_pid;
static struct lttng_channel chan;
{"help", 'h', POPT_ARG_NONE, 0, OPT_HELP, 0, 0},
{"session", 's', POPT_ARG_STRING, &opt_session_name, 0, 0, 0},
{"kernel", 'k', POPT_ARG_VAL, &opt_kernel, 1, 0, 0},
- {"userspace", 'u', POPT_ARG_STRING | POPT_ARGFLAG_OPTIONAL, 0, OPT_USERSPACE, 0, 0},
+ {"userspace", 'u', POPT_ARG_STRING | POPT_ARGFLAG_OPTIONAL, &opt_cmd_name, OPT_USERSPACE, 0, 0},
{"all", 0, POPT_ARG_VAL, &opt_pid_all, 1, 0, 0},
{"pid", 'p', POPT_ARG_INT, &opt_pid, 0, 0, 0},
{"discard", 0, POPT_ARG_NONE, 0, OPT_DISCARD, 0, 0},
dom.type = LTTNG_DOMAIN_UST_PID;
dom.attr.pid = opt_pid;
DBG("PID %d set to lttng handle", opt_pid);
+ } else if (opt_userspace && opt_cmd_name == NULL) {
+ dom.type = LTTNG_DOMAIN_UST;
+ } else if (opt_userspace && opt_cmd_name != NULL) {
+ dom.type = LTTNG_DOMAIN_UST_EXEC_NAME;
+ strncpy(dom.attr.exec_name, opt_cmd_name, NAME_MAX);
} else {
+ ERR("Please specify a tracer (--kernel or --userspace)");
ret = CMD_NOT_IMPLEMENTED;
goto error;
}
if (handle == NULL) {
ret = -1;
goto error;
- } else {
- ERR("Please specify a tracer (--kernel or --userspace)");
- goto error;
}
/* Strip channel list (format: chan1,chan2,...) */
chan.attr.switch_timer_interval = DEFAULT_CHANNEL_SWITCH_TIMER;
chan.attr.read_timer_interval = DEFAULT_CHANNEL_READ_TIMER;
- chan.attr.subbuf_size = DEFAULT_CHANNEL_SUBBUF_SIZE;
- chan.attr.num_subbuf = DEFAULT_CHANNEL_SUBBUF_NUM;
+ chan.attr.subbuf_size = DEFAULT_UST_CHANNEL_SUBBUF_SIZE;
+ chan.attr.num_subbuf = DEFAULT_UST_CHANNEL_SUBBUF_NUM;
chan.attr.output = DEFAULT_CHANNEL_OUTPUT;
}
}
usage(stderr);
ret = CMD_SUCCESS;
goto end;
- case OPT_USERSPACE:
- opt_userspace = 1;
- opt_cmd_name = poptGetOptArg(pc);
- break;
case OPT_DISCARD:
chan.attr.overwrite = 0;
DBG("Channel set to discard");
chan.attr.read_timer_interval = atoi(poptGetOptArg(pc));
DBG("Channel read timer interval set to %d", chan.attr.read_timer_interval);
break;
+ case OPT_USERSPACE:
+ opt_userspace = 1;
+ break;
default:
usage(stderr);
ret = CMD_UNDEFINED;