X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Flist.c;h=50d6114c3d166be10483b71974b6418cf6152494;hp=4a53968740bd789aa8216bfda39029396c346b72;hb=d14d33bf091e72b23b1f90ea18a0a01bed098b76;hpb=aa5de748c1150c17624abce3cc74839fea3234f6 diff --git a/src/bin/lttng/commands/list.c b/src/bin/lttng/commands/list.c index 4a5396874..50d6114c3 100644 --- a/src/bin/lttng/commands/list.c +++ b/src/bin/lttng/commands/list.c @@ -1,19 +1,18 @@ /* * Copyright (C) 2011 - David Goulet * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; only version 2 - * of the License. + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2 only, + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #define _GNU_SOURCE @@ -144,47 +143,43 @@ const char *enabled_string(int value) } } -static -const char *loglevel_string_pre(int loglevel) -{ - if (loglevel == -1) { - return ""; - } else { - return " (loglevel: "; - } -} - -static -const char *loglevel_string_post(int loglevel) -{ - if (loglevel == -1) { - return ""; - } else { - return ")"; - } -} - static const char *loglevel_string(int value) { switch (value) { - case -1: return ""; - case 0: return "TRACE_EMERG"; - case 1: return "TRACE_ALERT"; - case 2: return "TRACE_CRIT"; - case 3: return "TRACE_ERR"; - 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"; - default: return "<>"; + case -1: + return ""; + case LTTNG_LOGLEVEL_EMERG: + return "TRACE_EMERG"; + case LTTNG_LOGLEVEL_ALERT: + return "TRACE_ALERT"; + case LTTNG_LOGLEVEL_CRIT: + return "TRACE_CRIT"; + case LTTNG_LOGLEVEL_ERR: + return "TRACE_ERR"; + case LTTNG_LOGLEVEL_WARNING: + return "TRACE_WARNING"; + case LTTNG_LOGLEVEL_NOTICE: + return "TRACE_NOTICE"; + case LTTNG_LOGLEVEL_INFO: + return "TRACE_INFO"; + case LTTNG_LOGLEVEL_DEBUG_SYSTEM: + return "TRACE_DEBUG_SYSTEM"; + case LTTNG_LOGLEVEL_DEBUG_PROGRAM: + return "TRACE_DEBUG_PROGRAM"; + case LTTNG_LOGLEVEL_DEBUG_PROCESS: + return "TRACE_DEBUG_PROCESS"; + case LTTNG_LOGLEVEL_DEBUG_MODULE: + return "TRACE_DEBUG_MODULE"; + case LTTNG_LOGLEVEL_DEBUG_UNIT: + return "TRACE_DEBUG_UNIT"; + case LTTNG_LOGLEVEL_DEBUG_FUNCTION: + return "TRACE_DEBUG_FUNCTION"; + case LTTNG_LOGLEVEL_DEBUG_LINE: + return "TRACE_DEBUG_LINE"; + case LTTNG_LOGLEVEL_DEBUG: + return "TRACE_DEBUG"; + default: + return "<>"; } } @@ -196,12 +191,19 @@ static void print_events(struct lttng_event *event) switch (event->type) { case LTTNG_EVENT_TRACEPOINT: { - MSG("%s%s%s%s%s (type: tracepoint)%s", indent6, + if (event->loglevel != -1) { + MSG("%s%s (loglevel: %s (%d)) (type: tracepoint)%s", + indent6, event->name, - loglevel_string_pre(event->loglevel), loglevel_string(event->loglevel), - loglevel_string_post(event->loglevel), + event->loglevel, enabled_string(event->enabled)); + } else { + MSG("%s%s (type: tracepoint)%s", + indent6, + event->name, + enabled_string(event->enabled)); + } break; } case LTTNG_EVENT_PROBE: @@ -221,7 +223,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: @@ -472,6 +474,9 @@ static int list_sessions(const char *session_name) if (count < 0) { ret = count; goto error; + } else if (count == 0) { + MSG("Currently no available tracing session"); + goto end; } if (session_name == NULL) { @@ -509,6 +514,7 @@ static int list_sessions(const char *session_name) MSG("\nUse lttng list for more details"); } +end: return CMD_SUCCESS; error: