summaryrefslogtreecommitdiff
path: root/tools/perf/util/symbol_fprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/symbol_fprintf.c')
-rw-r--r--tools/perf/util/symbol_fprintf.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/tools/perf/util/symbol_fprintf.c b/tools/perf/util/symbol_fprintf.c
index 63694e174e5c..53e1af4ed9ac 100644
--- a/tools/perf/util/symbol_fprintf.c
+++ b/tools/perf/util/symbol_fprintf.c
@@ -1,7 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0
#include <elf.h>
#include <inttypes.h>
#include <stdio.h>
+#include "dso.h"
+#include "map.h"
#include "symbol.h"
size_t symbol__fprintf(struct symbol *sym, FILE *fp)
@@ -27,7 +30,7 @@ size_t __symbol__fprintf_symname_offs(const struct symbol *sym,
if (al->addr < sym->end)
offset = al->addr - sym->start;
else
- offset = al->addr - al->map->start - sym->start;
+ offset = al->addr - map__start(al->map) - sym->start;
length += fprintf(fp, "+0x%lx", offset);
}
return length;
@@ -57,16 +60,14 @@ size_t symbol__fprintf_symname(const struct symbol *sym, FILE *fp)
}
size_t dso__fprintf_symbols_by_name(struct dso *dso,
- enum map_type type, FILE *fp)
+ FILE *fp)
{
size_t ret = 0;
- struct rb_node *nd;
- struct symbol_name_rb_node *pos;
- for (nd = rb_first(&dso->symbol_names[type]); nd; nd = rb_next(nd)) {
- pos = rb_entry(nd, struct symbol_name_rb_node, rb_node);
- fprintf(fp, "%s\n", pos->sym.name);
- }
+ for (size_t i = 0; i < dso__symbol_names_len(dso); i++) {
+ struct symbol *pos = dso__symbol_names(dso)[i];
+ ret += fprintf(fp, "%s\n", pos->name);
+ }
return ret;
}