aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/callchain.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/callchain.c')
-rw-r--r--tools/perf/util/callchain.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c
index 38da69c8c1ff..b6624aeaaca9 100644
--- a/tools/perf/util/callchain.c
+++ b/tools/perf/util/callchain.c
@@ -815,7 +815,16 @@ char *callchain_list__sym_name(struct callchain_list *cl,
815 int printed; 815 int printed;
816 816
817 if (cl->ms.sym) { 817 if (cl->ms.sym) {
818 printed = scnprintf(bf, bfsize, "%s", cl->ms.sym->name); 818 if (callchain_param.key == CCKEY_ADDRESS &&
819 cl->ms.map && !cl->srcline)
820 cl->srcline = get_srcline(cl->ms.map->dso,
821 map__rip_2objdump(cl->ms.map,
822 cl->ip));
823 if (cl->srcline)
824 printed = scnprintf(bf, bfsize, "%s %s",
825 cl->ms.sym->name, cl->srcline);
826 else
827 printed = scnprintf(bf, bfsize, "%s", cl->ms.sym->name);
819 } else 828 } else
820 printed = scnprintf(bf, bfsize, "%#" PRIx64, cl->ip); 829 printed = scnprintf(bf, bfsize, "%#" PRIx64, cl->ip);
821 830