X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Flttng.c;h=e6ca9cfd9877485339188fbbbf1626f0a8d21ae7;hp=16582b0363b86fa1405d4afd6d1751f3c36b9499;hb=f3f0db50cf3fbc658bb4ffaf79a7fb694ab05e1d;hpb=373d38732a83167f19c3be89cf9ff238743cdeb0 diff --git a/src/bin/lttng/lttng.c b/src/bin/lttng/lttng.c index 16582b036..e6ca9cfd9 100644 --- a/src/bin/lttng/lttng.c +++ b/src/bin/lttng/lttng.c @@ -2,9 +2,8 @@ * 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 - * as published by the Free Software Foundation; only version 2 - * of the License. + * 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 @@ -35,9 +34,6 @@ /* Variables */ static char *progname; - -int opt_quiet; -int opt_verbose; static int opt_no_sessiond; static char *opt_sessiond_path; static pid_t sessiond_pid; @@ -78,13 +74,15 @@ static struct cmd_struct commands[] = { { "version", cmd_version}, { "calibrate", cmd_calibrate}, { "view", cmd_view}, + { "enable-consumer", cmd_enable_consumer}, + { "disable-consumer", cmd_disable_consumer}, { NULL, NULL} /* Array closure */ }; static void usage(FILE *ofp) { - fprintf(ofp, "LTTng Trace Control " VERSION"\n\n"); - fprintf(ofp, "usage: lttng [OPTIONS] \n"); + fprintf(ofp, "LTTng Trace Control " VERSION" - " VERSION_NAME"\n\n"); + fprintf(ofp, "usage: lttng [OPTIONS] []\n"); fprintf(ofp, "\n"); fprintf(ofp, "Options:\n"); fprintf(ofp, " -h, --help Show this help\n"); @@ -97,20 +95,22 @@ static void usage(FILE *ofp) fprintf(ofp, " --sessiond-path PATH Session daemon full path\n"); fprintf(ofp, "\n"); fprintf(ofp, "Commands:\n"); - fprintf(ofp, " add-context Add context to event and/or channel\n"); - fprintf(ofp, " calibrate Quantify LTTng overhead\n"); - fprintf(ofp, " create Create tracing session\n"); - fprintf(ofp, " destroy Tear down tracing session\n"); - fprintf(ofp, " enable-channel Enable tracing channel\n"); - fprintf(ofp, " enable-event Enable tracing event\n"); - fprintf(ofp, " disable-channel Disable tracing channel\n"); - fprintf(ofp, " disable-event Disable tracing event\n"); - fprintf(ofp, " list List possible tracing options\n"); - fprintf(ofp, " set-session Set current session name\n"); - fprintf(ofp, " start Start tracing\n"); - fprintf(ofp, " stop Stop tracing\n"); - fprintf(ofp, " version Show version information\n"); - fprintf(ofp, " view Start trace viewer\n"); + fprintf(ofp, " add-context Add context to event and/or channel\n"); + fprintf(ofp, " calibrate Quantify LTTng overhead\n"); + fprintf(ofp, " create Create tracing session\n"); + fprintf(ofp, " destroy Tear down tracing session\n"); + fprintf(ofp, " enable-channel Enable tracing channel\n"); + fprintf(ofp, " enable-event Enable tracing event\n"); + fprintf(ofp, " disable-channel Disable tracing channel\n"); + fprintf(ofp, " disable-event Disable tracing event\n"); + fprintf(ofp, " enable-consumer Enable local or streaming consumer\n"); + fprintf(ofp, " disable-consumer Disable consumer\n"); + fprintf(ofp, " list List possible tracing options\n"); + fprintf(ofp, " set-session Set current session name\n"); + fprintf(ofp, " start Start tracing\n"); + fprintf(ofp, " stop Stop tracing\n"); + fprintf(ofp, " version Show version information\n"); + fprintf(ofp, " view Start trace viewer\n"); fprintf(ofp, "\n"); fprintf(ofp, "Each command also has its own -h, --help option.\n"); fprintf(ofp, "\n"); @@ -432,10 +432,10 @@ static int parse_args(int argc, char **argv) ret = 0; goto end; case 'v': - opt_verbose += 1; + lttng_opt_verbose += 1; break; case 'q': - opt_quiet = 1; + lttng_opt_quiet = 1; break; case 'g': lttng_set_tracing_group(optarg); @@ -462,8 +462,8 @@ static int parse_args(int argc, char **argv) } /* If both options are specified, quiet wins */ - if (opt_verbose && opt_quiet) { - opt_verbose = 0; + if (lttng_opt_verbose && lttng_opt_quiet) { + lttng_opt_verbose = 0; } /* Spawn session daemon if needed */ @@ -505,7 +505,9 @@ static int parse_args(int argc, char **argv) case 0: break; default: - ERR("%s", lttng_strerror(ret)); + if (ret < 0) { + ret = -ret; + } break; } @@ -521,14 +523,17 @@ error: int main(int argc, char *argv[]) { int ret; + char *user; progname = argv[0] ? argv[0] : "lttng"; /* For Mathieu Desnoyers a.k.a. Dr. Tracing */ - if (strncmp(progname, "drtrace", 7) == 0 || - strncmp("compudj", getenv("USER"), 7) == 0) { + user = getenv("USER"); + if (user != NULL && ((strncmp(progname, "drtrace", 7) == 0 || + strncmp("compudj", user, 7) == 0))) { MSG("%c[%d;%dmWelcome back Dr Tracing!%c[%dm\n", 27,1,33,27,0); } + /* Thanks Mathieu */ ret = set_signal_handler(); if (ret < 0) {