From da00e1ac0e777eab09a5cdb1fda6db036d252218 Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Wed, 27 Jan 2010 21:05:50 -0200 Subject: [PATCH] --- yaml --- r: 182427 b: refs/heads/master c: a19afe46412452fef89cc623873a8931b3685944 h: refs/heads/master i: 182425: 72065df91e9683773ce37dc6dabcd68e43ba7161 182423: 52b2c8da0da486af8e5cdd83468fd360086e7f13 v: v3 --- [refs] | 2 +- trunk/tools/perf/util/symbol.c | 38 +++++++++++++++++++++------------- trunk/tools/perf/util/symbol.h | 2 ++ 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index 10861252d2e6..ccb192d16cd3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 72b8fa1730207274f6818b47b891ce5dff79287e +refs/heads/master: a19afe46412452fef89cc623873a8931b3685944 diff --git a/trunk/tools/perf/util/symbol.c b/trunk/tools/perf/util/symbol.c index f1f609dcf9a1..26ec603083e0 100644 --- a/trunk/tools/perf/util/symbol.c +++ b/trunk/tools/perf/util/symbol.c @@ -1578,6 +1578,27 @@ static int dso__load_vmlinux(struct dso *self, struct map *map, return err; } +int dso__load_vmlinux_path(struct dso *self, struct map *map, + struct perf_session *session, symbol_filter_t filter) +{ + int i, err = 0; + + pr_debug("Looking at the vmlinux_path (%d entries long)\n", + vmlinux_path__nr_entries); + + for (i = 0; i < vmlinux_path__nr_entries; ++i) { + err = dso__load_vmlinux(self, map, session, vmlinux_path[i], + filter); + if (err > 0) { + pr_debug("Using %s for symbols\n", vmlinux_path[i]); + dso__set_long_name(self, strdup(vmlinux_path[i])); + break; + } + } + + return err; +} + static int dso__load_kernel_sym(struct dso *self, struct map *map, struct perf_session *session, symbol_filter_t filter) { @@ -1606,20 +1627,9 @@ static int dso__load_kernel_sym(struct dso *self, struct map *map, } if (vmlinux_path != NULL) { - int i; - pr_debug("Looking at the vmlinux_path (%d entries long)\n", - vmlinux_path__nr_entries); - for (i = 0; i < vmlinux_path__nr_entries; ++i) { - err = dso__load_vmlinux(self, map, session, - vmlinux_path[i], filter); - if (err > 0) { - pr_debug("Using %s for symbols\n", - vmlinux_path[i]); - dso__set_long_name(self, - strdup(vmlinux_path[i])); - goto out_fixup; - } - } + err = dso__load_vmlinux_path(self, map, session, filter); + if (err > 0) + goto out_fixup; } /* diff --git a/trunk/tools/perf/util/symbol.h b/trunk/tools/perf/util/symbol.h index ffe0b0f2e5d3..a94997aeb334 100644 --- a/trunk/tools/perf/util/symbol.h +++ b/trunk/tools/perf/util/symbol.h @@ -129,6 +129,8 @@ struct perf_session; int dso__load(struct dso *self, struct map *map, struct perf_session *session, symbol_filter_t filter); +int dso__load_vmlinux_path(struct dso *self, struct map *map, + struct perf_session *session, symbol_filter_t filter); void dsos__fprintf(FILE *fp); size_t dsos__fprintf_buildid(FILE *fp, bool with_hits);