X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Flist.c;h=69671bd714d1c6854d2303a08e7fe9044a4c5bbc;hb=f1f887c09fa00f365bd56c025159524aa0d3ac50;hp=3bac86ecdcd93220653c4119111dc542527d4a49;hpb=baa81d3ac6e60bf3caf261342e10a7f85e87e23a;p=lttng-tools.git diff --git a/src/bin/lttng/commands/list.c b/src/bin/lttng/commands/list.c index 3bac86ecd..69671bd71 100644 --- a/src/bin/lttng/commands/list.c +++ b/src/bin/lttng/commands/list.c @@ -175,15 +175,14 @@ static const char *loglevel_string(int value) case 4: return "TRACE_WARNING"; case 5: return "TRACE_NOTICE"; case 6: return "TRACE_INFO"; - case 7: return "TRACE_SYSTEM"; - case 8: return "TRACE_PROGRAM"; - case 9: return "TRACE_PROCESS"; - case 10: return "TRACE_MODULE"; - case 11: return "TRACE_UNIT"; - case 12: return "TRACE_FUNCTION"; - case 13: return "TRACE_DEFAULT"; - case 14: return "TRACE_VERBOSE"; - case 15: return "TRACE_DEBUG"; + case 7: return "TRACE_DEBUG_SYSTEM"; + case 8: return "TRACE_DEBUG_PROGRAM"; + case 9: return "TRACE_DEBUG_PROCESS"; + case 10: return "TRACE_DEBUG_MODULE"; + case 11: return "TRACE_DEBUG_UNIT"; + case 12: return "TRACE_DEBUG_FUNCTION"; + case 13: return "TRACE_DEBUG_LINE"; + case 14: return "TRACE_DEBUG"; default: return "<>"; } } @@ -196,11 +195,10 @@ static void print_events(struct lttng_event *event) switch (event->type) { case LTTNG_EVENT_TRACEPOINT: { - MSG("%s%s%s%s%d%s (type: tracepoint)%s", indent6, + MSG("%s%s%s%s%s (type: tracepoint)%s", indent6, event->name, loglevel_string_pre(event->loglevel), loglevel_string(event->loglevel), - event->loglevel, loglevel_string_post(event->loglevel), enabled_string(event->enabled)); break; @@ -222,7 +220,7 @@ static void print_events(struct lttng_event *event) MSG("%ssymbol: \"%s\"", indent8, event->attr.ftrace.symbol_name); break; case LTTNG_EVENT_SYSCALL: - MSG("%s (type: syscall)%s", indent6, + MSG("%ssyscalls (type: syscall)%s", indent6, enabled_string(event->enabled)); break; case LTTNG_EVENT_NOOP: @@ -247,6 +245,8 @@ static int list_ust_events(void) struct lttng_event *event_list; pid_t cur_pid = 0; + memset(&domain, 0, sizeof(domain)); + DBG("Getting UST tracing events"); domain.type = LTTNG_DOMAIN_UST; @@ -259,6 +259,7 @@ static int list_ust_events(void) size = lttng_list_tracepoints(handle, &event_list); if (size < 0) { ERR("Unable to list UST events"); + lttng_destroy_handle(handle); return size; } @@ -279,10 +280,12 @@ static int list_ust_events(void) MSG(""); free(event_list); + lttng_destroy_handle(handle); return CMD_SUCCESS; error: + lttng_destroy_handle(handle); return -1; } @@ -296,6 +299,8 @@ static int list_kernel_events(void) struct lttng_handle *handle; struct lttng_event *event_list; + memset(&domain, 0, sizeof(domain)); + DBG("Getting kernel tracing events"); domain.type = LTTNG_DOMAIN_KERNEL; @@ -308,6 +313,7 @@ static int list_kernel_events(void) size = lttng_list_tracepoints(handle, &event_list); if (size < 0) { ERR("Unable to list kernel events"); + lttng_destroy_handle(handle); return size; } @@ -321,9 +327,11 @@ static int list_kernel_events(void) free(event_list); + lttng_destroy_handle(handle); return CMD_SUCCESS; error: + lttng_destroy_handle(handle); return -1; } @@ -480,7 +488,8 @@ static int list_sessions(const char *session_name) continue; } - MSG(" %d) %s (%s)%s", i + 1, sessions[i].name, sessions[i].path, active_string(sessions[i].enabled)); + MSG(" %d) %s (%s)%s", i + 1, sessions[i].name, sessions[i].path, + active_string(sessions[i].enabled)); if (session_found) { break; @@ -490,7 +499,9 @@ static int list_sessions(const char *session_name) free(sessions); if (!session_found && session_name != NULL) { - ERR("Session %s not found", session_name); + ERR("Session '%s' not found", session_name); + ret = CMD_ERROR; + goto error; } if (session_name == NULL) { @@ -554,6 +565,8 @@ int cmd_list(int argc, const char **argv) struct lttng_domain domain; struct lttng_domain *domains = NULL; + memset(&domain, 0, sizeof(domain)); + if (argc < 1) { usage(stderr); ret = CMD_ERROR; @@ -592,16 +605,18 @@ int cmd_list(int argc, const char **argv) domain.type = LTTNG_DOMAIN_UST; } - handle = lttng_create_handle(session_name, &domain); - if (handle == NULL) { - ret = CMD_FATAL; - goto end; + if (opt_kernel || opt_userspace) { + handle = lttng_create_handle(session_name, &domain); + if (handle == NULL) { + ret = CMD_FATAL; + goto end; + } } if (session_name == NULL) { if (!opt_kernel && !opt_userspace) { ret = list_sessions(NULL); - if (ret < 0) { + if (ret != 0) { goto end; } } @@ -620,7 +635,7 @@ int cmd_list(int argc, const char **argv) } else { /* List session attributes */ ret = list_sessions(session_name); - if (ret < 0) { + if (ret != 0) { goto end; } @@ -658,7 +673,9 @@ int cmd_list(int argc, const char **argv) } /* Clean handle before creating a new one */ - lttng_destroy_handle(handle); + if (handle) { + lttng_destroy_handle(handle); + } handle = lttng_create_handle(session_name, &domains[i]); if (handle == NULL) { @@ -678,7 +695,9 @@ end: if (domains) { free(domains); } - lttng_destroy_handle(handle); + if (handle) { + lttng_destroy_handle(handle); + } poptFreeContext(pc); return ret;