X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=tools%2Fperf%2Fbuiltin-buildid-list.c;h=99890728409eba3bc390d2060a58d140f543c488;hb=3be2264be3c00865116f997dc53ebcc90fe7fc4b;hp=4229c2c213ccc37e262c2a54a9d7a43debb68cae;hpb=fed5af61dc0d9402d26e7fb8fb9731a60a8e05ca;p=safe%2Fjmp%2Flinux-2.6 diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c index 4229c2c..9989072 100644 --- a/tools/perf/builtin-buildid-list.c +++ b/tools/perf/builtin-buildid-list.c @@ -8,6 +8,7 @@ */ #include "builtin.h" #include "perf.h" +#include "util/build-id.h" #include "util/cache.h" #include "util/debug.h" #include "util/parse-options.h" @@ -15,7 +16,8 @@ #include "util/symbol.h" static char const *input_name = "perf.data"; -static int force; +static bool force; +static bool with_hits; static const char * const buildid_list_usage[] = { "perf buildid-list []", @@ -23,10 +25,11 @@ static const char * const buildid_list_usage[] = { }; static const struct option options[] = { + OPT_BOOLEAN('H', "with-hits", &with_hits, "Show only DSOs with hits"), OPT_STRING('i', "input", &input_name, "file", "input file name"), OPT_BOOLEAN('f', "force", &force, "don't complain, do it"), - OPT_BOOLEAN('v', "verbose", &verbose, + OPT_INCR('v', "verbose", &verbose, "be more verbose"), OPT_END() }; @@ -36,11 +39,16 @@ static int __cmd_buildid_list(void) int err = -1; struct perf_session *session; - session = perf_session__new(input_name, O_RDONLY, force); + session = perf_session__new(input_name, O_RDONLY, force, false); if (session == NULL) return -1; - dsos__fprintf_buildid(stdout); + if (with_hits) { + symbol_conf.full_paths = true; + perf_session__process_events(session, &build_id__mark_dso_hit_ops); + } + + perf_session__fprintf_dsos_buildid(session, stdout, with_hits); perf_session__delete(session); return err;