#include <string.h>
#include <assert.h>
+#include <lttng/constant.h>
#include "../command.h"
static int opt_userspace;
int ret;
FILE *fp;
char *cmdline = NULL;
- char path[24]; /* Can't go bigger than /proc/65535/cmdline */
+ /* Can't go bigger than /proc/LTTNG_MAX_PID/cmdline */
+ char path[sizeof("/proc//cmdline") + sizeof(LTTNG_MAX_PID_STR) - 1];
snprintf(path, sizeof(path), "/proc/%d/cmdline", pid);
fp = fopen(path, "r");
}
/* Caller must free() *cmdline */
- cmdline = malloc(PATH_MAX);
+ cmdline = zmalloc(PATH_MAX);
+ if (!cmdline) {
+ perror("malloc cmdline");
+ goto end;
+ }
ret = fread(cmdline, 1, PATH_MAX, fp);
if (ret < 0) {
perror("fread proc list");
}
}
+static const char *loglevel_jul_string(int value)
+{
+ switch (value) {
+ case -1:
+ return "";
+ case LTTNG_LOGLEVEL_JUL_OFF:
+ return "JUL_OFF";
+ case LTTNG_LOGLEVEL_JUL_SEVERE:
+ return "JUL_SEVERE";
+ case LTTNG_LOGLEVEL_JUL_WARNING:
+ return "JUL_WARNING";
+ case LTTNG_LOGLEVEL_JUL_INFO:
+ return "JUL_INFO";
+ case LTTNG_LOGLEVEL_JUL_CONFIG:
+ return "JUL_CONFIG";
+ case LTTNG_LOGLEVEL_JUL_FINE:
+ return "JUL_FINE";
+ case LTTNG_LOGLEVEL_JUL_FINER:
+ return "JUL_FINER";
+ case LTTNG_LOGLEVEL_JUL_FINEST:
+ return "JUL_FINEST";
+ case LTTNG_LOGLEVEL_JUL_ALL:
+ return "JUL_ALL";
+ default:
+ return "<<UNKNOWN>>";
+ }
+}
+
static const char *loglevel_string(int value)
{
switch (value) {
}
for (i = 0; i < count; i++) {
- MSG("%s- %s%s", indent4, events[i].name,
- enabled_string(events[i].enabled));
+ MSG("%s- %s%s (loglevel%s %s)", indent4, events[i].name,
+ enabled_string(events[i].enabled),
+ logleveltype_string(events[i].loglevel_type),
+ loglevel_jul_string(events[i].loglevel));
}
MSG("");
goto error_channels;
}
- if (channel_name == NULL) {
+ if (count) {
MSG("Channels:\n-------------");
}