In case we don't have symbol to display we display bare 'unmapped' address. This was unintentionally changed in recent commit: 5550171b2a9f perf callchain: Use al.addr to set up call chain
Putting the original way back. Cc: Andi Kleen <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Corey Ashford <[email protected]> Cc: David Ahern <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Peter Zijlstra <[email protected]> Signed-off-by: Jiri Olsa <[email protected]> --- tools/perf/util/callchain.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c index 64b377e591e4..a4fb25fb26f5 100644 --- a/tools/perf/util/callchain.c +++ b/tools/perf/util/callchain.c @@ -816,22 +816,30 @@ out: char *callchain_list__sym_name(struct callchain_list *cl, char *bf, size_t bfsize, bool show_dso) { + struct map *map = cl->ms.map; int printed; if (cl->ms.sym) { if (callchain_param.key == CCKEY_ADDRESS && - cl->ms.map && !cl->srcline) - cl->srcline = get_srcline(cl->ms.map->dso, - map__rip_2objdump(cl->ms.map, - cl->ip), + map && !cl->srcline) { + cl->srcline = get_srcline(map->dso, + map__rip_2objdump(map, cl->ip), cl->ms.sym, false); + } if (cl->srcline) printed = scnprintf(bf, bfsize, "%s %s", cl->ms.sym->name, cl->srcline); else printed = scnprintf(bf, bfsize, "%s", cl->ms.sym->name); - } else - printed = scnprintf(bf, bfsize, "%#" PRIx64, cl->ip); + } else { + /* + * The cl->ip value is unbased ip (applied map->map_ip). + * Display the unmap ip in case we have no symbol. + */ + u64 addr = map ? map->unmap_ip(map, cl->ip) : cl->ip; + + printed = scnprintf(bf, bfsize, "%#" PRIx64, addr); + } if (show_dso) scnprintf(bf + printed, bfsize - printed, " %s", -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

