[Lldb-commits] [lldb] [lldb][PlatformDarwin] Make LocateExecutableScriptingResourcesFromDSYM a public static (PR #185056)

Michael Buch via lldb-commits lldb-commits at lists.llvm.org
Fri Mar 6 09:28:35 PST 2026


https://github.com/Michael137 created https://github.com/llvm/llvm-project/pull/185056

This will allow us to unit-test it in a follow-up patch. We could test `LocateExecutableScriptingResources` directly, but that requires a valid `Module`/`ObjectFile`/`SymbolFile`. That's a lot of boilerplate/set to ultimately just test the `dSYM` logic. The helper just takes `FileSpec`s, which are much easier to construct in a test.

>From c7650c394a3c4996765bed5eb33da1163b3922c0 Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuch12 at gmail.com>
Date: Fri, 6 Mar 2026 16:10:57 +0000
Subject: [PATCH] [lldb][PlatformDarwin] Make
 LocateExecutableScriptingResourcesFromDSYM a public static

This will allow us to unit-test it in a follow-up patch. We could test `LocateExecutableScriptingResources` directly, but that requires a valid `Module`/`ObjectFile`/`SymbolFile`. That's a lot of boilerplate/set to ultimately just test the `dSYM` logic. The helper just takes `FileSpec`s, which are much easier to construct in a test.
---
 .../Platform/MacOSX/PlatformDarwin.cpp        |  2 +-
 .../Plugins/Platform/MacOSX/PlatformDarwin.h  | 22 +++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
index 3d12f9f815661..2c5b10c07ee26 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
@@ -200,7 +200,7 @@ PlatformDarwin::PutFile(const lldb_private::FileSpec &source,
   return PlatformPOSIX::PutFile(source, destination, uid, gid);
 }
 
-static FileSpecList LocateExecutableScriptingResourcesFromDSYM(
+FileSpecList PlatformDarwin::LocateExecutableScriptingResourcesFromDSYM(
     Stream &feedback_stream, FileSpec module_spec, const Target &target,
     const FileSpec &symfile_spec) {
   FileSpecList file_list;
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
index dc81a9baf5e51..e884bcba5c2cc 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
@@ -133,6 +133,28 @@ class PlatformDarwin : public PlatformPOSIX {
   llvm::Expected<std::string>
   ResolveSDKPathFromDebugInfo(CompileUnit &unit) override;
 
+  /// Helper function for \c LocateExecutableScriptingResources
+  /// which gathers FileSpecs for executable scripts (currently
+  /// just Python) from a .dSYM Python directory.
+  ///
+  /// \param[out] feedback_stream Any warnings/errors are printed into this
+  /// stream.
+  ///
+  /// \param[in] module_spec FileSpec of the Module for which to locate
+  /// scripting resources.
+  ///
+  /// \param[in] target Target which owns the ScriptInterpreter which is
+  /// eventually used for loading the scripting resources.
+  ///
+  /// \param[in] symfile_spec FileSpec for the SymbolFile inside the Module's
+  /// dSYM directory. The scripting resources are loaded from the adjacent
+  /// Resources directory in the same dSYM.
+  /// E.g., \c /path/to/.dSYM/Contents/Resources/DWARF/a.out
+  ///
+  static FileSpecList LocateExecutableScriptingResourcesFromDSYM(
+      Stream &feedback_stream, FileSpec module_spec, const Target &target,
+      const FileSpec &symfile_spec);
+
 protected:
   static const char *GetCompatibleArch(ArchSpec::Core core, size_t idx);
 



More information about the lldb-commits mailing list