Skip to content

Commit 3d20c62

Browse files
Martin Vuilleacmel
authored andcommitted
perf unwind: Unwind with libdw doesn't take symfs into account
Path passed to libdw for unwinding doesn't include symfs path if specified, so unwinding fails because ELF file is not found. Similar to unwinding with libunwind, pass symsrc_filename instead of long_name. If there is no symsrc_filename, fallback to long_name. Signed-off-by: Martin Vuille <jpmv27@aim.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/r/20180211212420.18388-1-jpmv27@aim.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent a8685f0 commit 3d20c62

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

tools/perf/util/unwind-libdw.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ static int __report_module(struct addr_location *al, u64 ip,
5050

5151
if (!mod)
5252
mod = dwfl_report_elf(ui->dwfl, dso->short_name,
53-
dso->long_name, -1, al->map->start,
53+
(dso->symsrc_filename ? dso->symsrc_filename : dso->long_name), -1, al->map->start,
5454
false);
5555

5656
return mod && dwfl_addrmodule(ui->dwfl, ip) == mod ? 0 : -1;

0 commit comments

Comments
 (0)