X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Flist.c;h=44a4c44a364efaa9038984a867000419f94ce519;hb=4e1b4b38b8746c555e047954a67208cceb486acf;hp=14e390a030445c690f03bae266ca16bb1dead774;hpb=63a2c1bde5a14a71cc646c00f19eb00d70c33a68;p=lttng-tools.git diff --git a/src/bin/lttng/commands/list.c b/src/bin/lttng/commands/list.c index 14e390a03..44a4c44a3 100644 --- a/src/bin/lttng/commands/list.c +++ b/src/bin/lttng/commands/list.c @@ -131,12 +131,12 @@ static char *get_cmdline_by_pid(pid_t pid) /* Caller must free() *cmdline */ 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: @@ -1246,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 @@ -1378,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(""); } } @@ -1667,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; @@ -1754,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;