https://github.com/charles-zablit updated 
https://github.com/llvm/llvm-project/pull/210010

>From 550f1a9574f605e3d567d80eb26af4421f3b98fa Mon Sep 17 00:00:00 2001
From: Charles Zablit <[email protected]>
Date: Thu, 16 Jul 2026 09:52:18 +0100
Subject: [PATCH 1/2] [lldb][Windows] Reuse preloaded exe module on launch

---
 .../Process/Windows/Common/ProcessWindows.cpp | 29 +++++++++----------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp 
b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
index 08a5d24b3db9d..4161cf50a2398 100644
--- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
@@ -645,22 +645,21 @@ void ProcessWindows::OnDebuggerConnected(lldb::addr_t 
image_base) {
   LLDB_LOG(log, "Debugger connected to process {0}.  Image base = {1:x}",
            debugger->GetProcess().GetProcessId(), image_base);
 
-  ModuleSP module;
-  // During attach, we won't have the executable module, so find it now.
-  const DWORD pid = debugger->GetProcess().GetProcessId();
-  const std::string file_name = GetProcessExecutableName(pid);
-  if (file_name.empty()) {
-    return;
-  }
-
-  FileSpec executable_file(file_name);
-  FileSystem::Instance().Resolve(executable_file);
-  ModuleSpec module_spec(executable_file);
-  Status error;
-  module =
-      GetTarget().GetOrCreateModule(module_spec, true /* notify */, &error);
+  ModuleSP module = GetTarget().GetExecutableModule();
   if (!module) {
-    return;
+    const DWORD pid = debugger->GetProcess().GetProcessId();
+    const std::string file_name = GetProcessExecutableName(pid);
+    if (file_name.empty())
+      return;
+
+    FileSpec executable_file(file_name);
+    FileSystem::Instance().Resolve(executable_file);
+    ModuleSpec module_spec(executable_file);
+    Status error;
+    module =
+        GetTarget().GetOrCreateModule(module_spec, /*notify=*/true, &error);
+    if (!module)
+      return;
   }
 
   GetTarget().SetExecutableModule(module, eLoadDependentsNo);

>From 5ecd6753b76ebc8955f52b79517960dd08a7ee4a Mon Sep 17 00:00:00 2001
From: Charles Zablit <[email protected]>
Date: Fri, 17 Jul 2026 17:11:36 +0200
Subject: [PATCH 2/2] fixup! [lldb][Windows] Reuse preloaded exe module on
 launch

---
 lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp 
b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
index 4161cf50a2398..7a196820cf744 100644
--- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
@@ -660,10 +660,9 @@ void ProcessWindows::OnDebuggerConnected(lldb::addr_t 
image_base) {
         GetTarget().GetOrCreateModule(module_spec, /*notify=*/true, &error);
     if (!module)
       return;
+    GetTarget().SetExecutableModule(module, eLoadDependentsNo);
   }
 
-  GetTarget().SetExecutableModule(module, eLoadDependentsNo);
-
   if (auto dyld = GetDynamicLoader())
     dyld->OnLoadModule(module, ModuleSpec(), image_base);
 

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to