[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Mon Feb 12 21:18:43 PST 2024
================
@@ -141,6 +145,24 @@ std::optional<FileSpec> SymbolLocatorDefault::LocateExecutableSymbolFile(
FileSystem::Instance().Resolve(file_spec);
debug_file_search_paths.AppendIfUnique(file_spec);
}
+#if defined(__FreeBSD__)
+ // Add $LOCALBASE/lib/debug directory, where
+ // LOCALBASE is usually /usr/local, but may be adjusted by the end user
+ {
+ int mib[2];
+ char buf[PATH_MAX];
+ size_t len = PATH_MAX;
+
+ mib[0] = CTL_USER;
+ mib[1] = USER_LOCALBASE;
+ if (::sysctl(mib, 2, buf, &len, NULL, 0) == 0) {
+ std::string localbase(buf);
+ FileSpec file_spec(localbase + "/lib/debug");
----------------
JDevlieghere wrote:
The string concatenation is fine, though you could achieve the same with `PrependPathComponent` and save the allocation in `std::string`.
```
FileSpec file_spec("/lib/debug");
file_spec.PrependPathComponent(StringRef(buf));
```
https://github.com/llvm/llvm-project/pull/81355
More information about the lldb-commits
mailing list