X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Flist.c;h=44a4c44a364efaa9038984a867000419f94ce519;hb=4e1b4b38b8746c555e047954a67208cceb486acf;hp=7c3211a5927ffc2c34a0f3f5e72528be8c8c4575;hpb=0e1155633b00241b8b1e5a9bb683cf91b28f5eeb;p=lttng-tools.git diff --git a/src/bin/lttng/commands/list.c b/src/bin/lttng/commands/list.c index 7c3211a59..44a4c44a3 100644 --- a/src/bin/lttng/commands/list.c +++ b/src/bin/lttng/commands/list.c @@ -16,6 +16,7 @@ */ #define _GNU_SOURCE +#define _LGPL_SOURCE #include #include #include @@ -128,14 +129,14 @@ static char *get_cmdline_by_pid(pid_t pid) } /* Caller must free() *cmdline */ - cmdline = malloc(PATH_MAX); + cmdline = zmalloc(PATH_MAX); if (!cmdline) { - perror("malloc cmdline"); + PERROR("malloc cmdline"); goto end; } ret = fread(cmdline, 1, PATH_MAX, fp); if (ret < 0) { - perror("fread proc list"); + PERROR("fread proc list"); } end: @@ -1207,7 +1208,7 @@ static int list_channels(const char *channel_name) } } else { /* Pretty print */ - if (channel_name == NULL) { + if (count) { MSG("Channels:\n-------------"); } @@ -1245,6 +1246,36 @@ error_channels: return ret; } +/* + * List tracker PID(s) of session and domain. + */ +static int list_tracker_pids(void) +{ + int enabled, ret; + int *pids = NULL; + size_t nr_pids; + + ret = lttng_list_tracker_pids(handle, + &enabled, &pids, &nr_pids); + if (ret) { + return ret; + } + if (enabled) { + int i; + _MSG("PID tracker: ["); + + for (i = 0; i < nr_pids; i++) { + if (i) { + _MSG(","); + } + _MSG(" %d", pids[i]); + } + _MSG(" ]\n\n"); + } + free(pids); + return 0; +} + /* * Machine interface * Find the session with session_name as name @@ -1377,8 +1408,11 @@ static int list_sessions(const char *session_name) active_string(sessions[i].enabled), snapshot_string(sessions[i].snapshot_mode)); MSG("%sTrace path: %s", indent4, sessions[i].path); - MSG("%sLive timer interval (usec): %u\n", indent4, - sessions[i].live_timer_interval); + if (sessions[i].live_timer_interval != 0) { + MSG("%sLive timer interval (usec): %u", indent4, + sessions[i].live_timer_interval); + } + MSG(""); } } @@ -1666,6 +1700,11 @@ int cmd_list(int argc, const char **argv) } + ret = list_tracker_pids(); + if (ret) { + goto end; + } + ret = list_channels(opt_channel); if (ret) { goto end; @@ -1753,6 +1792,18 @@ int cmd_list(int argc, const char **argv) continue; } + switch (domains[i].type) { + case LTTNG_DOMAIN_KERNEL: + case LTTNG_DOMAIN_UST: + ret = list_tracker_pids(); + if (ret) { + goto end; + } + break; + default: + break; + } + ret = list_channels(opt_channel); if (ret) { goto end;