https://github.com/clayborg updated 
https://github.com/llvm/llvm-project/pull/177289

>From f813cbdfa60fdac02da6e27c31cacc4fd669269a Mon Sep 17 00:00:00 2001
From: Greg Clayton <[email protected]>
Date: Wed, 21 Jan 2026 16:46:59 -0800
Subject: [PATCH 1/2] Add the ability to load ELF core file executables and
 shared libraries from memory.

This patch enables ELF core files to be loaded and still show executables and 
shared libraries. Functionality includes:
- Load executable and shared libraries from memory if ELF headers are available
- Create placeholder for missing shared libraries and executable. Previously 
you just wouldn't get anything in the "image list" if no executable was 
provided.
---
 lldb/source/Core/DynamicLoader.cpp            |  14 ++--
 .../POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp     |  18 ++++-
 .../Process/elf-core/ProcessElfCore.cpp       |  37 ++++++++--
 .../Plugins/Process/elf-core/ProcessElfCore.h |   4 +-
 .../postmortem/elf-core/TestLinuxCore.py      |  68 ++++++++++++++++++
 .../elf-core/linux-x86_64-no-exe.core         | Bin 0 -> 225280 bytes
 6 files changed, 127 insertions(+), 14 deletions(-)
 create mode 100644 
lldb/test/API/functionalities/postmortem/elf-core/linux-x86_64-no-exe.core

diff --git a/lldb/source/Core/DynamicLoader.cpp 
b/lldb/source/Core/DynamicLoader.cpp
index 31d277bc19681..563a81fb8239b 100644
--- a/lldb/source/Core/DynamicLoader.cpp
+++ b/lldb/source/Core/DynamicLoader.cpp
@@ -176,13 +176,17 @@ ModuleSP DynamicLoader::LoadModuleAtAddress(const 
FileSpec &file,
                                             addr_t link_map_addr,
                                             addr_t base_addr,
                                             bool base_addr_is_offset) {
-  if (ModuleSP module_sp = FindModuleViaTarget(file)) {
+  ModuleSP module_sp = FindModuleViaTarget(file);
+  // We have a core file, try to load the image from memory if we didn't find
+  // the module.
+  if (!module_sp && !m_process->IsLiveDebugSession()) {
+    module_sp = m_process->ReadModuleFromMemory(file, base_addr);
+    m_process->GetTarget().GetImages().AppendIfNeeded(module_sp, false);
+  }
+  if (module_sp)
     UpdateLoadedSections(module_sp, link_map_addr, base_addr,
                          base_addr_is_offset);
-    return module_sp;
-  }
-
-  return nullptr;
+  return module_sp;
 }
 
 static ModuleSP ReadUnnamedMemoryModule(Process *process, addr_t addr,
diff --git 
a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp 
b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
index 3605e7b2c6960..1a0ae9378fd80 100644
--- a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
+++ b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
@@ -27,6 +27,7 @@
 #include "lldb/Utility/Log.h"
 #include "lldb/Utility/ProcessInfo.h"
 #include "llvm/Support/ThreadPool.h"
+#include "Plugins/ObjectFile/Placeholder/ObjectFilePlaceholder.h"
 
 #include <memory>
 #include <optional>
@@ -698,22 +699,33 @@ void DynamicLoaderPOSIXDYLD::LoadAllCurrentModules() {
   ModuleSP executable = GetTargetExecutable();
   SetLoadedModule(executable, m_rendezvous.GetLinkMapAddress());
 
+  Target &target = m_process->GetTarget();
   std::vector<FileSpec> module_names;
   for (I = m_rendezvous.begin(), E = m_rendezvous.end(); I != E; ++I)
     module_names.push_back(I->file_spec);
   m_process->PrefetchModuleSpecs(
-      module_names, m_process->GetTarget().GetArchitecture().GetTriple());
+      module_names, target.GetArchitecture().GetTriple());
 
-  auto load_module_fn = [this, &module_list,
+  auto load_module_fn = [this, &module_list, &target,
                          &log](const DYLDRendezvous::SOEntry &so_entry) {
     ModuleSP module_sp = LoadModuleAtAddress(
         so_entry.file_spec, so_entry.link_addr, so_entry.base_addr, true);
+    if (!module_sp && !m_process->IsLiveDebugSession()) {
+      ModuleSpec module_spec(so_entry.file_spec, target.GetArchitecture());
+      if (UUID uuid = m_process->FindModuleUUID(so_entry.file_spec.GetPath()))
+        module_spec.GetUUID() = uuid;
+      module_sp = Module::CreateModuleFromObjectFile<ObjectFilePlaceholder>(
+          module_spec, so_entry.base_addr, 512);
+      bool load_addr_changed = false;
+      target.GetImages().Append(module_sp, false);
+      module_sp->SetLoadAddress(target, so_entry.base_addr,
+                                false, load_addr_changed);
+    }
     if (module_sp.get()) {
       LLDB_LOG(log, "LoadAllCurrentModules loading module: {0}",
                so_entry.file_spec.GetFilename());
       module_list.Append(module_sp);
     } else {
-      Log *log = GetLog(LLDBLog::DynamicLoader);
       LLDB_LOGF(
           log,
           "DynamicLoaderPOSIXDYLD::%s failed loading module %s at 0x%" PRIx64,
diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp 
b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
index f8e33eac614a4..5e4c67af059db 100644
--- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
+++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp
@@ -259,7 +259,7 @@ Status ProcessElfCore::DoLoadCore() {
   lldb::ModuleSP exe_module_sp = GetTarget().GetExecutableModule();
   if (!exe_module_sp) {
     if (!m_nt_file_entries.empty()) {
-      llvm::StringRef executable_path = GetMainExecutablePath();
+      std::string executable_path = GetMainExecutablePath();
       ModuleSpec exe_module_spec;
       exe_module_spec.GetArchitecture() = arch;
       exe_module_spec.GetUUID() = FindModuleUUID(executable_path);
@@ -268,6 +268,24 @@ Status ProcessElfCore::DoLoadCore() {
       if (exe_module_spec.GetFileSpec()) {
         exe_module_sp =
             GetTarget().GetOrCreateModule(exe_module_spec, true /* notify */);
+        if (!exe_module_sp) {
+          // Create an ELF file from memory for the main executable. The 
dynamic
+          // loader requires the main executable so that it can extract the
+          // DT_DEBUG key/value pair from the dynamic section and get the list
+          // of shared libraries.
+          std::optional<lldb::addr_t> exe_header_addr;
+
+          // We need to find its load address
+          for (const NT_FILE_Entry &file_entry : m_nt_file_entries) {
+            if (file_entry.path == executable_path) {
+              exe_header_addr = file_entry.start;
+              break;
+            }
+          }
+          if (exe_header_addr.has_value())
+            exe_module_sp = ReadModuleFromMemory(exe_module_spec.GetFileSpec(),
+                                                 *exe_header_addr);
+        }
         if (exe_module_sp)
           GetTarget().SetExecutableModule(exe_module_sp, eLoadDependentsNo);
       }
@@ -293,12 +311,23 @@ void ProcessElfCore::UpdateBuildIdForNTFileEntries() {
   }
 }
 
-llvm::StringRef ProcessElfCore::GetMainExecutablePath() {
+std::string ProcessElfCore::GetMainExecutablePath() {
+  // Always try to read the program name from core file memory first via the
+  // AUXV_AT_EXECFN entry. This value is the address of a null terminated C
+  // string that contains the program path.
+  AuxVector aux_vector(m_auxv);
+  std::string execfn_str;
+  if (auto execfn = aux_vector.GetAuxValue(AuxVector::AUXV_AT_EXECFN)) {
+    Status error;
+    if (ReadCStringFromMemory(*execfn, execfn_str, error))
+      return execfn_str;
+  }
+
   if (m_nt_file_entries.empty())
-    return "";
+    return {};
 
   // The first entry in the NT_FILE might be our executable
-  llvm::StringRef executable_path = m_nt_file_entries[0].path;
+  std::string executable_path = m_nt_file_entries[0].path;
   // Prefer the NT_FILE entry matching m_executable_name as main executable.
   for (const NT_FILE_Entry &file_entry : m_nt_file_entries)
     if (llvm::StringRef(file_entry.path).ends_with("/" + m_executable_name)) {
diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h 
b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h
index 576c6858477a6..7eda33be8634c 100644
--- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h
+++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h
@@ -168,8 +168,8 @@ class ProcessElfCore : public 
lldb_private::PostMortemProcess {
 
   lldb_private::UUID FindModuleUUID(const llvm::StringRef path) override;
 
-  // Returns the main executable path
-  llvm::StringRef GetMainExecutablePath();
+  // Returns the main executable path.
+  std::string GetMainExecutablePath();
 
   // Returns the value of certain type of note of a given start address
   lldb_private::UUID FindBuidIdInCoreMemory(lldb::addr_t address);
diff --git a/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py 
b/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
index e9403b56ae195..84c20f4c5a4e1 100644
--- a/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
+++ b/lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
@@ -1042,6 +1042,74 @@ def test_read_only_cstring(self):
         cstr = var.GetSummary()
         self.assertEqual(cstr, '"_start"')
 
+    @skipIfLLVMTargetMissing("X86")
+    @skipIfWindows
+    def test_linux_no_exe(self):
+        """
+        Test that we are able to get the shared library list when loading a
+        linux core file without an executable. This tests LLDB's ability to
+        create memory object files when the ELF header is available for the
+        binary in the shared library list, and to create place holder object
+        files for any files we weren't able to locate or load from memory. It
+        also tests the dynamic loader's ability to find the list of shared
+        libraries from the PT_DYNAMIC section's DT_DEBUG entry. The core file
+        used in this test has the ELF header for the main executable 
"elf-crash"
+        and for "/lib64/libm.so.6". This test will verify that all shared
+        libraries are available. The "image list" output should look like:
+
+        (lldb) image list
+        [  0] 7BCC1101 0x000055bb04288000 /data/users/gclayton/args/elf-crash 
(0x000055bb04288000)
+        [  1]                                      0x00007f27db200000 
/lib64/libstdc++.so.6
+        [  2] AF275675-4671-8B49-24C8-A9A657D74115-C80DEE65 0x00007f27db51b000 
/lib64/libm.so.6 (0x00007f27db51b000)
+        [  3]                                      0x00007f27db4fe000 
/lib64/libgcc_s.so.1
+        [  4]                                      0x00007f27dae00000 
/lib64/libc.so.6
+        [  5]                                      0x00007f27db606000 
/lib64/ld-linux-x86-64.so.2
+        """
+        target = self.dbg.CreateTarget(None)
+        process = target.LoadCore("linux-x86_64-no-exe.core")
+        self.assertTrue(process, PROCESS_IS_VALID)
+        num_modules = target.GetNumModules()
+        self.assertEqual(num_modules, 6)
+
+        m = target.module["/data/users/gclayton/args/elf-crash"]
+        self.assertTrue(m.IsValid())
+        self.assertEqual(m.GetObjectFileHeaderAddress().GetLoadAddress(target),
+                         0x000055bb04288000)
+        self.assertEqual(m.GetUUIDString(), "7BCC1101")
+
+        m = target.module["/lib64/libstdc++.so.6"]
+        self.assertTrue(m.IsValid())
+        self.assertEqual(m.GetObjectFileHeaderAddress().GetLoadAddress(target),
+                         0x00007f27db200000)
+        self.assertEqual(m.GetUUIDString(), None)
+
+        m = target.module["/lib64/libm.so.6"]
+        self.assertTrue(m.IsValid())
+        self.assertEqual(m.GetObjectFileHeaderAddress().GetLoadAddress(target),
+                         0x00007f27db51b000)
+        self.assertEqual(m.GetUUIDString(),
+                         "AF275675-4671-8B49-24C8-A9A657D74115-C80DEE65")
+
+        m = target.module["/lib64/libgcc_s.so.1"]
+        self.assertTrue(m.IsValid())
+        self.assertEqual(m.GetObjectFileHeaderAddress().GetLoadAddress(target),
+                         0x00007f27db4fe000)
+        self.assertEqual(m.GetUUIDString(), None)
+
+        m = target.module["/lib64/libc.so.6"]
+        self.assertTrue(m.IsValid())
+        self.assertEqual(m.GetObjectFileHeaderAddress().GetLoadAddress(target),
+                         0x00007f27dae00000)
+        self.assertEqual(m.GetUUIDString(), None)
+
+        m = target.module["/lib64/ld-linux-x86-64.so.2"]
+        self.assertTrue(m.IsValid())
+        self.assertEqual(m.GetObjectFileHeaderAddress().GetLoadAddress(target),
+                         0x00007f27db606000)
+        self.assertEqual(m.GetUUIDString(), None)
+
+        self.dbg.DeleteTarget(target)
+
     def check_memory_regions(self, process, region_count):
         region_list = process.GetMemoryRegions()
         self.assertEqual(region_list.GetSize(), region_count)
diff --git 
a/lldb/test/API/functionalities/postmortem/elf-core/linux-x86_64-no-exe.core 
b/lldb/test/API/functionalities/postmortem/elf-core/linux-x86_64-no-exe.core
new file mode 100644
index 
0000000000000000000000000000000000000000..74e84b06310331130b7023f4245332ba7cb6b058
GIT binary patch
literal 225280
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

literal 0
HcmV?d00001


>From 46ea6cdf32787883f3bc3f6c3741a024ef8c7e6c Mon Sep 17 00:00:00 2001
From: Greg Clayton <[email protected]>
Date: Thu, 22 Jan 2026 09:59:58 -0800
Subject: [PATCH 2/2] Run clang format.

---
 .../POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp              | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp 
b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
index 1a0ae9378fd80..8157210f90ce6 100644
--- a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
+++ b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
@@ -9,6 +9,7 @@
 // Main header include
 #include "DynamicLoaderPOSIXDYLD.h"
 
+#include "Plugins/ObjectFile/Placeholder/ObjectFilePlaceholder.h"
 #include "lldb/Breakpoint/BreakpointLocation.h"
 #include "lldb/Core/Debugger.h"
 #include "lldb/Core/Module.h"
@@ -27,7 +28,6 @@
 #include "lldb/Utility/Log.h"
 #include "lldb/Utility/ProcessInfo.h"
 #include "llvm/Support/ThreadPool.h"
-#include "Plugins/ObjectFile/Placeholder/ObjectFilePlaceholder.h"
 
 #include <memory>
 #include <optional>
@@ -703,8 +703,8 @@ void DynamicLoaderPOSIXDYLD::LoadAllCurrentModules() {
   std::vector<FileSpec> module_names;
   for (I = m_rendezvous.begin(), E = m_rendezvous.end(); I != E; ++I)
     module_names.push_back(I->file_spec);
-  m_process->PrefetchModuleSpecs(
-      module_names, target.GetArchitecture().GetTriple());
+  m_process->PrefetchModuleSpecs(module_names,
+                                 target.GetArchitecture().GetTriple());
 
   auto load_module_fn = [this, &module_list, &target,
                          &log](const DYLDRendezvous::SOEntry &so_entry) {
@@ -718,8 +718,8 @@ void DynamicLoaderPOSIXDYLD::LoadAllCurrentModules() {
           module_spec, so_entry.base_addr, 512);
       bool load_addr_changed = false;
       target.GetImages().Append(module_sp, false);
-      module_sp->SetLoadAddress(target, so_entry.base_addr,
-                                false, load_addr_changed);
+      module_sp->SetLoadAddress(target, so_entry.base_addr, false,
+                                load_addr_changed);
     }
     if (module_sp.get()) {
       LLDB_LOG(log, "LoadAllCurrentModules loading module: {0}",

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

Reply via email to