diff options
author | Ingo Molnar <mingo@elte.hu> | 2012-01-31 13:05:08 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2012-01-31 13:05:08 +0100 |
commit | 623ec991ce0e8cd5791bad656c162fa837635907 (patch) | |
tree | b52722c85b8fec8851f31dac6ae3a16906a98bd5 /tools/perf/util/symbol.c | |
parent | bb1693f89ae7f0b30c90d9b26a4f827faed1144a (diff) | |
parent | cfeb1d90a1b1db96383b48888cb7a5f10ca12e12 (diff) |
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
perf/core fixes and improvements: perf script improvements and minor fixes.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/util/symbol.c')
-rw-r--r-- | tools/perf/util/symbol.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 0975438c3e72..fc6e12fe4b44 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -263,6 +263,28 @@ static size_t symbol__fprintf(struct symbol *sym, FILE *fp) sym->name); } +size_t symbol__fprintf_symname_offs(const struct symbol *sym, + const struct addr_location *al, FILE *fp) +{ + unsigned long offset; + size_t length; + + if (sym && sym->name) { + length = fprintf(fp, "%s", sym->name); + if (al) { + offset = al->addr - sym->start; + length += fprintf(fp, "+0x%lx", offset); + } + return length; + } else + return fprintf(fp, "[unknown]"); +} + +size_t symbol__fprintf_symname(const struct symbol *sym, FILE *fp) +{ + return symbol__fprintf_symname_offs(sym, NULL, fp); +} + void dso__set_long_name(struct dso *dso, char *name) { if (name == NULL) |