summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp')
-rw-r--r--lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp39
1 files changed, 1 insertions, 38 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
index 644fddb06a4..9d606063f93 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
+++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
@@ -827,7 +827,7 @@ bool ObjectFileELF::SetLoadAddress(Target &target, lldb::addr_t value,
// of the sections that have SHF_ALLOC in their flag bits.
SectionSP section_sp(section_list->GetSectionAtIndex(sect_idx));
if (section_sp && section_sp->Test(SHF_ALLOC)) {
- lldb::addr_t load_addr = GetSectionPhysicalAddress(section_sp);
+ lldb::addr_t load_addr = section_sp->GetFileAddress();
// We don't want to update the load address of a section with type
// eSectionTypeAbsoluteAddress as they already have the absolute load
// address
@@ -3470,40 +3470,3 @@ size_t ObjectFileELF::ReadSectionData(Section *section,
section_data.SetData(buffer_sp);
return buffer_sp->GetByteSize();
}
-
-bool ObjectFileELF::AnySegmentHasPhysicalAddress() {
- size_t header_count = ParseProgramHeaders();
- for (size_t i = 1; i <= header_count; ++i) {
- auto header = GetProgramHeaderByIndex(i);
- if (header->p_paddr != 0)
- return true;
- }
- return false;
-}
-
-const elf::ELFProgramHeader *
-ObjectFileELF::GetSectionSegment(SectionSP section_sp) {
- auto section_size = section_sp->GetFileSize();
- if (section_size == 0)
- section_size = 1;
- size_t header_count = ParseProgramHeaders();
- for (size_t i = 1; i <= header_count; ++i) {
- auto header = GetProgramHeaderByIndex(i);
- if (section_sp->GetFileOffset() >= header->p_offset &&
- section_sp->GetFileOffset() + section_size <=
- header->p_offset + header->p_filesz)
- return header;
- }
- return nullptr;
-}
-
-addr_t ObjectFileELF::GetSectionPhysicalAddress(SectionSP section_sp) {
- auto segment = GetSectionSegment(section_sp);
- if (segment == nullptr)
- return section_sp->GetFileAddress();
- if (segment->p_type != PT_LOAD)
- return LLDB_INVALID_ADDRESS;
- auto base_address =
- AnySegmentHasPhysicalAddress() ? segment->p_paddr : segment->p_vaddr;
- return base_address + (section_sp->GetFileOffset() - segment->p_offset);
-}
OpenPOWER on IntegriCloud