X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Flist.c;h=48b2c82763e3bb69a40987e9f42f41e765355037;hb=d5d63bf12b65741e64735103b0a36a0ebb52b09b;hp=826cef269f088164595e30240f9fd537c1db0dbe;hpb=f37d259d342af1ff8855d9eaa578cb7a3cfcc4f2;p=lttng-tools.git diff --git a/src/bin/lttng/commands/list.c b/src/bin/lttng/commands/list.c index 826cef269..48b2c8276 100644 --- a/src/bin/lttng/commands/list.c +++ b/src/bin/lttng/commands/list.c @@ -146,6 +146,15 @@ const char *enabled_string(int value) } } +static +const char *filter_string(int value) +{ + switch (value) { + case 1: return " [with filter]"; + default: return ""; + } +} + static const char *loglevel_string(int value) { switch (value) { @@ -195,23 +204,26 @@ static void print_events(struct lttng_event *event) case LTTNG_EVENT_TRACEPOINT: { if (event->loglevel != -1) { - MSG("%s%s (loglevel: %s (%d)) (type: tracepoint)%s", + MSG("%s%s (loglevel: %s (%d)) (type: tracepoint)%s%s", indent6, event->name, loglevel_string(event->loglevel), event->loglevel, - enabled_string(event->enabled)); + enabled_string(event->enabled), + filter_string(event->filter)); } else { - MSG("%s%s (type: tracepoint)%s", + MSG("%s%s (type: tracepoint)%s%s", indent6, event->name, - enabled_string(event->enabled)); + enabled_string(event->enabled), + filter_string(event->filter)); } break; } case LTTNG_EVENT_PROBE: - MSG("%s%s (type: probe)%s", indent6, - event->name, enabled_string(event->enabled)); + MSG("%s%s (type: probe)%s%s", indent6, + event->name, enabled_string(event->enabled), + filter_string(event->filter)); if (event->attr.probe.addr != 0) { MSG("%saddr: 0x%" PRIx64, indent8, event->attr.probe.addr); } else { @@ -221,17 +233,20 @@ static void print_events(struct lttng_event *event) break; case LTTNG_EVENT_FUNCTION: case LTTNG_EVENT_FUNCTION_ENTRY: - MSG("%s%s (type: function)%s", indent6, - event->name, enabled_string(event->enabled)); + MSG("%s%s (type: function)%s%s", indent6, + event->name, enabled_string(event->enabled), + filter_string(event->filter)); MSG("%ssymbol: \"%s\"", indent8, event->attr.ftrace.symbol_name); break; case LTTNG_EVENT_SYSCALL: - MSG("%ssyscalls (type: syscall)%s", indent6, - enabled_string(event->enabled)); + MSG("%ssyscalls (type: syscall)%s%s", indent6, + enabled_string(event->enabled), + filter_string(event->filter)); break; case LTTNG_EVENT_NOOP: - MSG("%s (type: noop)%s", indent6, - enabled_string(event->enabled)); + MSG("%s (type: noop)%s%s", indent6, + enabled_string(event->enabled), + filter_string(event->filter)); break; case LTTNG_EVENT_ALL: /* We should never have "all" events in list. */ @@ -265,8 +280,8 @@ static void print_event_field(struct lttng_event_field *field) if (!field->field_name[0]) { return; } - MSG("%sfield: %s (%s)", indent6, field->field_name, - field_type(field)); + MSG("%sfield: %s (%s)%s", indent8, field->field_name, + field_type(field), field->nowrite ? " [no write]" : ""); } /* @@ -506,11 +521,17 @@ static int list_channels(const char *channel_name) count = lttng_list_channels(handle, &channels); if (count < 0) { - ret = count; + switch (-count) { + case LTTNG_ERR_KERN_CHAN_NOT_FOUND: + ret = CMD_SUCCESS; + WARN("No kernel channel"); + break; + default: + /* We had a real error */ + ret = count; + ERR("%s", lttng_strerror(ret)); + } goto error_channels; - } else if (count == 0) { - ERR("Channel %s not found", channel_name); - goto error; } if (channel_name == NULL) { @@ -659,8 +680,7 @@ error: */ int cmd_list(int argc, const char **argv) { - int opt, i, ret = CMD_SUCCESS; - int nb_domain; + int opt, ret = CMD_SUCCESS; const char *session_name; static poptContext pc; struct lttng_domain domain; @@ -757,6 +777,8 @@ int cmd_list(int argc, const char **argv) goto end; } } else { + int i, nb_domain; + /* We want all domain(s) */ nb_domain = lttng_list_domains(session_name, &domains); if (nb_domain < 0) {