|
@@ -815,7 +815,16 @@ char *callchain_list__sym_name(struct callchain_list *cl,
|
|
int printed;
|
|
int printed;
|
|
|
|
|
|
if (cl->ms.sym) {
|
|
if (cl->ms.sym) {
|
|
- printed = scnprintf(bf, bfsize, "%s", cl->ms.sym->name);
|
|
|
|
|
|
+ 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));
|
|
|
|
+ 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
|
|
} else
|
|
printed = scnprintf(bf, bfsize, "%#" PRIx64, cl->ip);
|
|
printed = scnprintf(bf, bfsize, "%#" PRIx64, cl->ip);
|
|
|
|
|