perf_counter tools: Prepare for 'perf annotate'

Prepare for the 'perf annotate' implementation by splitting off
builtin-annotate.c from builtin-report.c.

( We keep this commit separate to ease the later librarization
  of the facilities that perf-report and perf-annotate shares. )

Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Ingo Molnar 2009-06-06 15:19:13 +02:00
parent 6e6b754ffd
commit 8035e42880
6 changed files with 1325 additions and 2 deletions

View file

@ -0,0 +1,26 @@
perf-annotate(1)
==============
NAME
----
perf-annotate - Read perf.data (created by perf record) and annotate functions
SYNOPSIS
--------
[verse]
'perf annotate' [-i <file> | --input=file] symbol_name
DESCRIPTION
-----------
This command displays the performance counter profile information recorded
via perf record.
OPTIONS
-------
-i::
--input=::
Input file name. (default: perf.data)
SEE ALSO
--------
linkperf:perf-record[1]

View file

@ -323,12 +323,13 @@ LIB_OBJS += util/symbol.o
LIB_OBJS += util/color.o
LIB_OBJS += util/pager.o
BUILTIN_OBJS += builtin-annotate.o
BUILTIN_OBJS += builtin-help.o
BUILTIN_OBJS += builtin-list.o
BUILTIN_OBJS += builtin-record.o
BUILTIN_OBJS += builtin-report.o
BUILTIN_OBJS += builtin-stat.o
BUILTIN_OBJS += builtin-top.o
BUILTIN_OBJS += builtin-list.o
PERFLIBS = $(LIB_FILE)
EXTLIBS =

File diff suppressed because it is too large Load diff

View file

@ -14,6 +14,7 @@ extern void prune_packed_objects(int);
extern int read_line_with_nul(char *buf, int size, FILE *file);
extern int check_pager_config(const char *cmd);
extern int cmd_annotate(int argc, const char **argv, const char *prefix);
extern int cmd_help(int argc, const char **argv, const char *prefix);
extern int cmd_record(int argc, const char **argv, const char *prefix);
extern int cmd_report(int argc, const char **argv, const char *prefix);

View file

@ -2,8 +2,9 @@
# List of known perf commands.
# command name category [deprecated] [common]
#
perf-annotate mainporcelain common
perf-list mainporcelain common
perf-record mainporcelain common
perf-report mainporcelain common
perf-stat mainporcelain common
perf-top mainporcelain common
perf-list mainporcelain common

View file

@ -263,6 +263,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "report", cmd_report, 0 },
{ "stat", cmd_stat, 0 },
{ "top", cmd_top, 0 },
{ "annotate", cmd_annotate, 0 },
{ "version", cmd_version, 0 },
};
int i;
@ -402,9 +403,11 @@ int main(int argc, const char **argv)
while (1) {
static int done_help = 0;
static int was_alias = 0;
was_alias = run_argv(&argc, &argv);
if (errno != ENOENT)
break;
if (was_alias) {
fprintf(stderr, "Expansion of alias '%s' failed; "
"'%s' is not a perf-command\n",