From b94709899f860ff395ceb7a12aa2bf194dea83b8 Mon Sep 17 00:00:00 2001 From: Stephane Eranian Date: Tue, 15 May 2012 13:28:15 +0200 Subject: [PATCH] --- yaml --- r: 305516 b: refs/heads/master c: 299c345208ae15fbc1e1c96dc1b6ac61e4e5da10 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/tools/perf/builtin-buildid-list.c | 6 +++++- trunk/tools/perf/util/build-id.c | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d75671b636bd..234a01961717 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 444d28663936e286c752f05feca44d6041b1fce4 +refs/heads/master: 299c345208ae15fbc1e1c96dc1b6ac61e4e5da10 diff --git a/trunk/tools/perf/builtin-buildid-list.c b/trunk/tools/perf/builtin-buildid-list.c index 52480467e9ff..6b2bcfbde150 100644 --- a/trunk/tools/perf/builtin-buildid-list.c +++ b/trunk/tools/perf/builtin-buildid-list.c @@ -84,7 +84,11 @@ static int perf_session__list_build_ids(void) if (filename__fprintf_build_id(session->filename, stdout)) goto out; - if (with_hits) + /* + * in pipe-mode, the only way to get the buildids is to parse + * the record stream. Buildids are stored as RECORD_HEADER_BUILD_ID + */ + if (with_hits || session->fd_pipe) perf_session__process_events(session, &build_id__mark_dso_hit_ops); perf_session__fprintf_dsos_buildid(session, stdout, with_hits); diff --git a/trunk/tools/perf/util/build-id.c b/trunk/tools/perf/util/build-id.c index dff9c7a725f4..fd9a5944b627 100644 --- a/trunk/tools/perf/util/build-id.c +++ b/trunk/tools/perf/util/build-id.c @@ -65,6 +65,8 @@ struct perf_tool build_id__mark_dso_hit_ops = { .mmap = perf_event__process_mmap, .fork = perf_event__process_task, .exit = perf_event__exit_del_thread, + .attr = perf_event__process_attr, + .build_id = perf_event__process_build_id, }; char *dso__build_id_filename(struct dso *self, char *bf, size_t size)