https://github.com/JDevlieghere updated 
https://github.com/llvm/llvm-project/pull/177724

>From 7d18162b5261e32d515d707ac81ceea504595a00 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <[email protected]>
Date: Fri, 23 Jan 2026 17:27:28 -0800
Subject: [PATCH 1/2] [lldb] Fix data buffer regression in ObjectFileELF

This fixes a regression in ObjectFileELF introduced by #171574.

The original code created a `DataBuffer` using `MapFileDataWritable`.

```
  data_sp = MapFileDataWritable(*file, length, file_offset);
  if (!data_sp)
    return nullptr;
  data_offset = 0;
```

The new code requires converting the `DataBuffer` to a `DataExtractor`:

```
  DataBufferSP buffer_sp = MapFileDataWritable(*file, length, file_offset);
  if (!buffer_sp)
    return nullptr;
  extractor_sp = std::make_shared<DataExtractor>();
  extractor_sp->SetData(buffer_sp, data_offset, buffer_sp->GetByteSize());
  data_offset = 0;
```

The issue is that once we get a data buffer back from
MapFileDataWritable, we don't have to adjust for the `data_offset`
anymore as the `DataBuffer` is already normalized to have a zero start
offset.
---
 lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp 
b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
index 7d783d5dd6b9f..5330268cc77f5 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
+++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
@@ -397,8 +397,7 @@ ObjectFile *ObjectFileELF::CreateInstance(const 
lldb::ModuleSP &module_sp,
     DataBufferSP buffer_sp = MapFileDataWritable(*file, length, file_offset);
     if (!buffer_sp)
       return nullptr;
-    extractor_sp = std::make_shared<DataExtractor>();
-    extractor_sp->SetData(buffer_sp, data_offset, buffer_sp->GetByteSize());
+    extractor_sp = std::make_shared<DataExtractor>(buffer_sp);
     data_offset = 0;
     mapped_writable = true;
   }

>From f3ae4629ad6c7bbbe9822d59d6496c2540a8a204 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <[email protected]>
Date: Fri, 23 Jan 2026 17:45:25 -0800
Subject: [PATCH 2/2] Fix the same issue in ObjectFile

---
 lldb/source/Symbol/ObjectFile.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lldb/source/Symbol/ObjectFile.cpp 
b/lldb/source/Symbol/ObjectFile.cpp
index 1dfd84c4b61e3..7ffae99e988bf 100644
--- a/lldb/source/Symbol/ObjectFile.cpp
+++ b/lldb/source/Symbol/ObjectFile.cpp
@@ -88,8 +88,7 @@ ObjectFileSP ObjectFile::FindPlugin(const lldb::ModuleSP 
&module_sp,
       // not 0 size, but we can't make a data buffer for it.
       if (DataBufferSP buffer_sp = FileSystem::Instance().CreateDataBuffer(
               file->GetPath(), g_initial_bytes_to_read, file_offset)) {
-        extractor_sp = std::make_shared<DataExtractor>();
-        extractor_sp->SetData(buffer_sp, data_offset, 
buffer_sp->GetByteSize());
+        extractor_sp = std::make_shared<DataExtractor>(buffer_sp);
         data_offset = 0;
       }
     }

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

Reply via email to