1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00

lldb: Correct a standalone debug file path

For a file /bin/ls with a .gnu_debuglink entry of "ls.debug" the path
should be /usr/lib/debug/bin/ls.debug, not /usr/lib/debug/bin/ls.

ref: https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html

Upstream defect pr17903 (http://llvm.org/pr17903)

Sponsored by:	DARPA, AFRL
This commit is contained in:
Ed Maste 2013-11-13 14:46:41 +00:00
parent 48777c4c5a
commit 4d1da75392
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=258094

View File

@ -61,9 +61,9 @@ Symbols::LocateExecutableSymbolFile (const ModuleSpec &module_spec)
uuid_str = uuid_str + ".debug";
}
// Get full path to our module. Needed to check debug files like this:
// /usr/lib/debug/usr/lib/libboost_date_time.so.1.46.1
std::string module_filename = module_spec.GetFileSpec().GetPath();
// Get directory of our module. Needed to check debug files like this:
// /usr/lib/debug/usr/lib/library.so.debug
std::string module_directory = module_spec.GetFileSpec().GetDirectory().AsCString();
size_t num_directories = debug_file_search_paths.GetSize();
for (size_t idx = 0; idx < num_directories; ++idx)
@ -79,7 +79,7 @@ Symbols::LocateExecutableSymbolFile (const ModuleSpec &module_spec)
files.push_back (dirname + "/" + symbol_filename);
files.push_back (dirname + "/.debug/" + symbol_filename);
files.push_back (dirname + "/.build-id/" + uuid_str);
files.push_back (dirname + module_filename);
files.push_back (dirname + module_directory + "/" + symbol_filename);
const uint32_t num_files = files.size();
for (size_t idx_file = 0; idx_file < num_files; ++idx_file)