Skip to content

Commit

Permalink
perf top: Fix symbol annotation
Browse files Browse the repository at this point in the history
We need to use map->unmap_ip() here too to match section
relative symbol address to the absolute address needed to match
objdump -dS addresses.

Reported-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1256061295-19835-1-git-send-email-acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Arnaldo Carvalho de Melo authored and Ingo Molnar committed Oct 20, 2009
1 parent 8f0b037 commit c88e4bf
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions tools/perf/builtin-top.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,8 @@ static void parse_source(struct sym_entry *syme)
sprintf(command,
"objdump --start-address=0x%016Lx "
"--stop-address=0x%016Lx -dS %s",
sym->start, sym->end, path);
map->unmap_ip(map, sym->start),
map->unmap_ip(map, sym->end), path);

file = popen(command, "r");
if (!file)
Expand Down Expand Up @@ -173,11 +174,11 @@ static void parse_source(struct sym_entry *syme)

if (strlen(src->line)>8 && src->line[8] == ':') {
src->eip = strtoull(src->line, NULL, 16);
src->eip += map->start;
src->eip = map->unmap_ip(map, src->eip);
}
if (strlen(src->line)>8 && src->line[16] == ':') {
src->eip = strtoull(src->line, NULL, 16);
src->eip += map->start;
src->eip = map->unmap_ip(map, src->eip);
}
}
pclose(file);
Expand Down

0 comments on commit c88e4bf

Please sign in to comment.