[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)

2024-05-02 Thread Gleb Popov via lldb-commits

https://github.com/arrowd edited https://github.com/llvm/llvm-project/pull/81355
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)

2024-05-02 Thread Gleb Popov via lldb-commits


@@ -141,6 +145,24 @@ std::optional 
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, , NULL, 0) == 0) {
+FileSpec file_spec("/lib/debug");
+file_spec.PrependPathComponent(StringRef(buf));

arrowd wrote:

Sorry for the breakage. Is this because a `FileSpec` holds references, not the 
final string?

https://github.com/llvm/llvm-project/pull/81355
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)

2024-05-01 Thread Gleb Popov via lldb-commits

arrowd wrote:

Another bump. Can we get this in?

https://github.com/llvm/llvm-project/pull/81355
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)

2024-04-11 Thread Gleb Popov via lldb-commits

arrowd wrote:

Another bump.

https://github.com/llvm/llvm-project/pull/81355
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)

2024-03-17 Thread Gleb Popov via lldb-commits

arrowd wrote:

Bump.

https://github.com/llvm/llvm-project/pull/81355
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)

2024-02-14 Thread Gleb Popov via lldb-commits

https://github.com/arrowd updated 
https://github.com/llvm/llvm-project/pull/81355

>From f129c6315388085e95244b9df289d22524c86890 Mon Sep 17 00:00:00 2001
From: Gleb Popov <6year...@gmail.com>
Date: Sat, 10 Feb 2024 14:15:49 +0300
Subject: [PATCH] [lldb] Teach LocateExecutableSymbolFile to look into
 LOCALBASE on FreeBSD.

Relevant change on the FreeBSD side: https://reviews.freebsd.org/D43515
---
 .../Default/SymbolLocatorDefault.cpp  | 22 +++
 1 file changed, 22 insertions(+)

diff --git a/lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp 
b/lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
index 6f0126b16cdc00..edb1d59cf42f88 100644
--- a/lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
+++ b/lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
@@ -36,6 +36,10 @@
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/ThreadPool.h"
 
+#if defined(__FreeBSD__)
+#include 
+#endif
+
 // From MacOSX system header "mach/machine.h"
 typedef int cpu_type_t;
 typedef int cpu_subtype_t;
@@ -141,6 +145,24 @@ std::optional 
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, , NULL, 0) == 0) {
+FileSpec file_spec("/lib/debug");
+file_spec.PrependPathComponent(StringRef(buf));
+FileSystem::Instance().Resolve(file_spec);
+debug_file_search_paths.AppendIfUnique(file_spec);
+  }
+}
+#endif // __FreeBSD__
 #endif
 #endif // _WIN32
   }

___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)

2024-02-10 Thread Gleb Popov via lldb-commits

https://github.com/arrowd updated 
https://github.com/llvm/llvm-project/pull/81355

>From 6ef9c188bbfdb3fa9301060c2d8730b1099f5209 Mon Sep 17 00:00:00 2001
From: Gleb Popov <6year...@gmail.com>
Date: Sat, 10 Feb 2024 14:15:49 +0300
Subject: [PATCH] [lldb] Teach LocateExecutableSymbolFile to look into
 LOCALBASE on FreeBSD.

Relevant change on the FreeBSD side: https://reviews.freebsd.org/D43515
---
 .../Default/SymbolLocatorDefault.cpp  | 22 +++
 1 file changed, 22 insertions(+)

diff --git a/lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp 
b/lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
index 6f0126b16cdc00..ce770c8ce7c6e3 100644
--- a/lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
+++ b/lldb/source/Plugins/SymbolLocator/Default/SymbolLocatorDefault.cpp
@@ -36,6 +36,10 @@
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/ThreadPool.h"
 
+#if defined(__FreeBSD__)
+#include 
+#endif
+
 // From MacOSX system header "mach/machine.h"
 typedef int cpu_type_t;
 typedef int cpu_subtype_t;
@@ -141,6 +145,24 @@ std::optional 
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, , NULL, 0) == 0) {
+std::string localbase(buf);
+FileSpec file_spec(localbase + "/lib/debug");
+FileSystem::Instance().Resolve(file_spec);
+debug_file_search_paths.AppendIfUnique(file_spec);
+  }
+}
+#endif // __FreeBSD__
 #endif
 #endif // _WIN32
   }

___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb] Teach LocateExecutableSymbolFile to look into LOCALBASE on FreeBSD (PR #81355)

2024-02-10 Thread Gleb Popov via lldb-commits

https://github.com/arrowd created 
https://github.com/llvm/llvm-project/pull/81355

Relevant change on the FreeBSD side: https://reviews.freebsd.org/D43515

@emaste @brooksdavis 

>From 3c49dd6cd794facda5b17d66f9f7b4d62cb1b0fc Mon Sep 17 00:00:00 2001
From: Gleb Popov <6year...@gmail.com>
Date: Sat, 10 Feb 2024 14:15:49 +0300
Subject: [PATCH] [lldb] Teach LocateExecutableSymbolFile to look into
 LOCALBASE on FreeBSD.

Relevant change on the FreeBSD side: https://reviews.freebsd.org/D43515
---
 lldb/source/Symbol/LocateSymbolFile.cpp | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/lldb/source/Symbol/LocateSymbolFile.cpp 
b/lldb/source/Symbol/LocateSymbolFile.cpp
index 0d0e5300668fc1..4f06518170ffc4 100644
--- a/lldb/source/Symbol/LocateSymbolFile.cpp
+++ b/lldb/source/Symbol/LocateSymbolFile.cpp
@@ -22,6 +22,10 @@
 
 #include "llvm/Support/FileSystem.h"
 
+#if defined(__FreeBSD__)
+#include 
+#endif
+
 // From MacOSX system header "mach/machine.h"
 typedef int cpu_type_t;
 typedef int cpu_subtype_t;
@@ -300,6 +304,24 @@ Symbols::LocateExecutableSymbolFile(const ModuleSpec 
_spec,
   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, , NULL, 0) == 0) {
+std::string localbase(buf);
+FileSpec file_spec(localbase + "/lib/debug");
+FileSystem::Instance().Resolve(file_spec);
+debug_file_search_paths.AppendIfUnique(file_spec);
+  }
+}
+#endif // __FreeBSD__
 #endif
 #endif // _WIN32
   }

___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits