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
