return cmdline;
}
+static
+const char *active_string(int value)
+{
+ switch (value) {
+ case 0: return " [inactive]";
+ case 1: return " [active]";
+ case -1: return "";
+ default: return NULL;
+ }
+}
+
+static
+const char *enabled_string(int value)
+{
+ switch (value) {
+ case 0: return " [disabled]";
+ case 1: return " [enabled]";
+ case -1: return "";
+ default: return NULL;
+ }
+}
+
+static
+const char *loglevel_string_pre(const char *loglevel)
+{
+ if (loglevel[0] == '\0') {
+ return "";
+ } else {
+ return " (loglevel: ";
+ }
+}
+
+static
+const char *loglevel_string_post(const char *loglevel)
+{
+ if (loglevel[0] == '\0') {
+ return "";
+ } else {
+ return ")";
+ }
+}
+
/*
* Pretty print single event.
*/
{
switch (event->type) {
case LTTNG_EVENT_TRACEPOINT:
- MSG("%s%s (type: tracepoint) [enabled: %d]", indent6,
- event->name, event->enabled);
+ {
+ char ll_value[LTTNG_SYMBOL_NAME_LEN] = "";
+
+ if (event->loglevel[0] != '\0') {
+ int ret;
+
+ ret = snprintf(ll_value, LTTNG_SYMBOL_NAME_LEN,
+ " (%lld)", (long long) event->loglevel_value);
+ if (ret < 0)
+ ERR("snprintf error");
+ }
+ MSG("%s%s%s%s%s%s (type: tracepoint)%s", indent6,
+ event->name,
+ loglevel_string_pre(event->loglevel),
+ event->loglevel,
+ ll_value,
+ loglevel_string_post(event->loglevel),
+ enabled_string(event->enabled));
break;
+ }
case LTTNG_EVENT_PROBE:
- MSG("%s%s (type: probe) [enabled: %d]", indent6,
- event->name, event->enabled);
+ MSG("%s%s (type: probe)%s", indent6,
+ event->name, enabled_string(event->enabled));
if (event->attr.probe.addr != 0) {
MSG("%saddr: 0x%" PRIx64, indent8, event->attr.probe.addr);
} else {
break;
case LTTNG_EVENT_FUNCTION:
case LTTNG_EVENT_FUNCTION_ENTRY:
- MSG("%s%s (type: function) [enabled: %d]", indent6,
- event->name, event->enabled);
+ MSG("%s%s (type: function)%s", indent6,
+ event->name, enabled_string(event->enabled));
MSG("%ssymbol: \"%s\"", indent8, event->attr.ftrace.symbol_name);
break;
case LTTNG_EVENT_SYSCALL:
- MSG("%s (type: syscall) [enabled: %d]", indent6,
- event->enabled);
+ MSG("%s (type: syscall)%s", indent6,
+ enabled_string(event->enabled));
break;
case LTTNG_EVENT_NOOP:
- MSG("%s (type: noop) [enabled: %d]", indent6,
- event->enabled);
+ MSG("%s (type: noop)%s", indent6,
+ enabled_string(event->enabled));
+ break;
+ case LTTNG_EVENT_TRACEPOINT_LOGLEVEL:
+ MSG("%s%s (type: tracepoint loglevel)%s", indent6,
+ event->name,
+ enabled_string(event->enabled));
break;
case LTTNG_EVENT_ALL:
/* We should never have "all" events in list. */
MSG("\n%sEvents:", indent4);
if (count == 0) {
- MSG("%sNone", indent6);
+ MSG("%sNone\n", indent6);
goto end;
}
*/
static void print_channel(struct lttng_channel *channel)
{
- MSG("- %s (enabled: %d):\n", channel->name, channel->enabled);
+ MSG("- %s:%s\n", channel->name, enabled_string(channel->enabled));
MSG("%sAttributes:", indent4);
MSG("%soverwrite mode: %d", indent6, channel->attr.overwrite);
unsigned int chan_found = 0;
struct lttng_channel *channels = NULL;
- DBG("Listing channel(s) (%s)", channel_name);
+ DBG("Listing channel(s) (%s)", channel_name ? : "<all>");
count = lttng_list_channels(handle, &channels);
if (count < 0) {
if (session_name != NULL) {
if (strncmp(sessions[i].name, session_name, NAME_MAX) == 0) {
session_found = 1;
- MSG("Tracing session %s:", session_name);
+ MSG("Tracing session %s:%s", session_name, active_string(sessions[i].enabled));
MSG("%sTrace path: %s\n", indent4, sessions[i].path);
break;
}
continue;
}
- MSG(" %d) %s (%s)", i + 1, sessions[i].name, sessions[i].path);
+ MSG(" %d) %s (%s)%s", i + 1, sessions[i].name, sessions[i].path, active_string(sessions[i].enabled));
if (session_found) {
break;
/*
* List available domain(s) for a session.
*/
-static int list_domains(void)
+static int list_domains(const char *session_name)
{
int i, count, ret = CMD_SUCCESS;
struct lttng_domain *domains = NULL;
MSG("Domains:\n-------------");
- count = lttng_list_domains(handle, &domains);
+ count = lttng_list_domains(session_name, &domains);
if (count < 0) {
ret = count;
goto error;
int cmd_list(int argc, const char **argv)
{
int opt, i, ret = CMD_SUCCESS;
- unsigned int nb_domain;
+ int nb_domain;
const char *session_name;
static poptContext pc;
struct lttng_domain domain;
/* Domain listing */
if (opt_domain) {
- ret = list_domains();
+ ret = list_domains(session_name);
goto end;
}
}
} else {
/* We want all domain(s) */
- nb_domain = lttng_list_domains(handle, &domains);
+ nb_domain = lttng_list_domains(session_name, &domains);
if (nb_domain < 0) {
ret = nb_domain;
goto end;