mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
perf tools: Use symfs when opening debuginfo by path
I found that it failed to load a binary using --symfs option. Say I
have a binary in /home/user/prog/xxx and a perf data file with it. If I
move them to a different machine and use --symfs, it tries to find the
binary in some locations under symfs using dso__read_binary_type_filename(),
but not the last one.
${symfs}/usr/lib/debug/home/user/prog/xxx.debug
${symfs}/usr/lib/debug/home/user/prog/xxx
${symfs}/home/user/prog/.debug/xxx
/home/user/prog/xxx
It should check ${symfs}/home/usr/prog/xxx. Let's fix it.
Reviewed-by: Ian Rogers <irogers@google.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Link: https://lore.kernel.org/r/20250212221445.437481-1-namhyung@kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
fc00897c8a
commit
70f127c716
|
|
@ -125,8 +125,12 @@ struct debuginfo *debuginfo__new(const char *path)
|
|||
dso__put(dso);
|
||||
|
||||
out:
|
||||
if (dinfo)
|
||||
return dinfo;
|
||||
|
||||
/* if failed to open all distro debuginfo, open given binary */
|
||||
return dinfo ? : __debuginfo__new(path);
|
||||
symbol__join_symfs(buf, path);
|
||||
return __debuginfo__new(buf);
|
||||
}
|
||||
|
||||
void debuginfo__delete(struct debuginfo *dbg)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user