perf record: Use unmapped IP for inline callchain cursors
Only use the mapped IP to find inline frames, but keep using the unmapped IP for the callchain cursor. This ensures we properly show the unmapped IP when displaying a frame we received via the dso__parse_addr_inlines API for a module which does not contain sufficient debug symbols to show the srcline. This is another follow-up to commit1961018469
("perf script: Show virtual addresses instead of offsets"). Signed-off-by: Milian Wolff <milian.wolff@kdab.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Tested-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jin Yao <yao.jin@linux.intel.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Sandipan Das <sandipan@linux.ibm.com> Fixes:1961018469
("perf script: Show virtual addresses instead of offsets") Link: http://lkml.kernel.org/r/20180926135207.30263-2-milian.wolff@kdab.com Link: http://lkml.kernel.org/r/20181002073949.3297-1-milian.wolff@kdab.com [ Squashed a fix from Milian for a problem reported by Ravi, fixed up space damage ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Родитель
05a2f54679
Коммит
7a8a8fcf7b
|
@ -2286,7 +2286,8 @@ static int append_inlines(struct callchain_cursor *cursor,
|
||||||
if (!symbol_conf.inline_name || !map || !sym)
|
if (!symbol_conf.inline_name || !map || !sym)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
addr = map__rip_2objdump(map, ip);
|
addr = map__map_ip(map, ip);
|
||||||
|
addr = map__rip_2objdump(map, addr);
|
||||||
|
|
||||||
inline_node = inlines__tree_find(&map->dso->inlined_nodes, addr);
|
inline_node = inlines__tree_find(&map->dso->inlined_nodes, addr);
|
||||||
if (!inline_node) {
|
if (!inline_node) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче