Commit 3d20c624 authored by Martin Vuille's avatar Martin Vuille Committed by Arnaldo Carvalho de Melo

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: default avatarMartin 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.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent a8685f08
...@@ -50,7 +50,7 @@ static int __report_module(struct addr_location *al, u64 ip, ...@@ -50,7 +50,7 @@ static int __report_module(struct addr_location *al, u64 ip,
if (!mod) if (!mod)
mod = dwfl_report_elf(ui->dwfl, dso->short_name, mod = dwfl_report_elf(ui->dwfl, dso->short_name,
dso->long_name, -1, al->map->start, (dso->symsrc_filename ? dso->symsrc_filename : dso->long_name), -1, al->map->start,
false); false);
return mod && dwfl_addrmodule(ui->dwfl, ip) == mod ? 0 : -1; return mod && dwfl_addrmodule(ui->dwfl, ip) == mod ? 0 : -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment