[Lldb-commits] [lldb] [lldb] Make ELF files able to load section headers from memory. (PR #129166)

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Fri Mar 21 19:11:10 PDT 2025


================
@@ -1477,32 +1506,32 @@ size_t ObjectFileELF::GetSectionHeaderInfo(SectionHeaderColl &section_headers,
   }
   if (idx < section_headers.size())
     section_headers.resize(idx);
+  // Sometimes we are able to read the section header memory from an in memory
----------------
clayborg wrote:

We actually want this to work for ELF files when we don't have the file and it is only in memory. GPU debugging often has images that are in memory only and we need those section headers. I agree with you that normal binaries loaded by the dynamic loader have this issue, but if we have JIT solutions that produce ELF files in memory, or GPU stuff that will compile things on the fly and point debuggers to ELF files in memory, then we should allow for this somehow. 

I guess we will need to modify the SBModule from memory API to take a size so that it can be specified, though this can still be wrong for most linux binaries. My example's section headers were in the dynamic section:

```
(lldb) image lookup --verbose --address 0x0000555555554000+0x0000000000003f88
      Address: a.out[0x0000000000003f88] (a.out.PT_LOAD[3]..dynamic + 448)
      Summary: a.out`_DYNAMIC + 448
       Module: file = "/home/gclayton/local/args/a.out", arch = "x86_64"
       Symbol: id = {0x00000033}, range = [0x0000555555557dc8-0x0000555555557fd8), name="_DYNAMIC"
```

Let me know what you think of being able to specify the size of the ELF data in memory as a fix? By default if anyone loads something from memory from say a core file, they shouldn't specify the size of the range and we would avoid reading the section headers. But if they do specify it, then we would try to read them, but only if they are contained within the data buffer for the object file? Ack, neither sounds great.



https://github.com/llvm/llvm-project/pull/129166


More information about the lldb-commits mailing list