X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=lttng%2Flttng.c;h=16487ff74a99cb2149bda0964af415ee2721868d;hp=e538df2fd403f0eefaf2be2c58b3c8a04973067d;hb=1657e9bb835a28e66396deac871270fe373d5ff4;hpb=e07ae692cc8537fe49483b65b2ba77d591010baa diff --git a/lttng/lttng.c b/lttng/lttng.c index e538df2fd..16487ff74 100644 --- a/lttng/lttng.c +++ b/lttng/lttng.c @@ -42,6 +42,7 @@ static char *progname; static int process_client_opt(void); static int process_opt_list_apps(void); static int process_opt_list_sessions(void); +static int process_opt_list_traces(void); static int process_opt_create_session(void); static void sighandler(int sig); static int set_signal_handler(void); @@ -80,6 +81,13 @@ static int process_client_opt(void) } } + if (opt_list_traces) { + ret = process_opt_list_traces(); + if (ret < 0) { + goto end; + } + } + if (opt_create_session != NULL) { ret = process_opt_create_session(); if (ret < 0) { @@ -125,6 +133,45 @@ end: return ret; } +/* + * process_opt_list_traces + * + * Get list of all traces for a specific session uuid. + */ +static int process_opt_list_traces(void) +{ + int ret, i; + uuid_t uuid; + struct lttng_trace *traces; + + uuid_parse(opt_session_uuid, uuid); + ret = lttng_list_traces(&uuid, &traces); + if (ret < 0) { + goto error; + } + + MSG("Userspace traces:"); + for (i = 0; i < ret; i++) { + if (traces[i].type == USERSPACE) { + MSG("\t%d) %s (pid: %d)", i, traces[i].name, traces[i].pid); + } else { + break; + } + } + + MSG("Kernel traces:"); + for (;i < ret; i++) { + if (traces[i].type == KERNEL) { + MSG("\t%d) %s", i, traces[i].name); + } + } + + free(traces); + +error: + return ret; +} + /* * process_opt_create_session * @@ -265,8 +312,8 @@ not_running: static int validate_options(void) { if ((opt_session_uuid == NULL) && - (opt_create_trace || opt_start_trace)) { - ERR("Can't act on trace without a session ID.\nPlease specify using --session UUID"); + (opt_create_trace || opt_start_trace || opt_list_traces)) { + ERR("You need to specify a session UUID.\nPlease use --session UUID to do so."); goto error; }