perf trace: Warn the user when not available
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 26 May 2014 19:02:29 +0000 (16:02 -0300)
committerJiri Olsa <jolsa@kernel.org>
Tue, 3 Jun 2014 19:34:00 +0000 (21:34 +0200)
When the audit-libs devel package is not found at build time we disable
the 'trace' command, as we are not able to map syscall numbers to
strings, but then the message the user is presented is cryptic:

  [root@zoo linux]# trace ls
  perf: 'ls' is not a perf-command. See 'perf --help'.

Fix it by presenting a more helpful message:

  [root@zoo linux]# trace l
  trace command not available: missing audit-libs devel package at build time.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-uxeunqetd0sgxyibusapen9a@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
tools/perf/perf.c

index 431798a4110d6a63a9e802ddeef2b2a701bea2a2..78f7b920e5483a1982dd4d164588b689e1b29e6d 100644 (file)
@@ -481,14 +481,18 @@ int main(int argc, const char **argv)
                fprintf(stderr, "cannot handle %s internally", cmd);
                goto out;
        }
-#ifdef HAVE_LIBAUDIT_SUPPORT
        if (!prefixcmp(cmd, "trace")) {
+#ifdef HAVE_LIBAUDIT_SUPPORT
                set_buildid_dir();
                setup_path();
                argv[0] = "trace";
                return cmd_trace(argc, argv, NULL);
-       }
+#else
+               fprintf(stderr,
+                       "trace command not available: missing audit-libs devel package at build time.\n");
+               goto out;
 #endif
+       }
        /* Look for flags.. */
        argv++;
        argc--;