[Lldb-commits] [PATCH] D17450: Add support for handling absolute symbols in ELF

Greg Clayton via lldb-commits lldb-commits at lists.llvm.org
Fri Feb 19 13:51:04 PST 2016


clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.

We should probably make it such that if a section has the type eSectionTypeAbsoluteAddress that we do the right thing inside the following functions:

Section::GetLoadBaseAddress(...);
Section::Slide(...);

SectionLoadList::SetSectionLoadAddress(...);
SectionLoadList::GetSectionLoadAddress(...);
SectionLoadList::SetSectionUnloaded(...);
SectionLoadList::ResolveLoadAddress(...);


================
Comment at: source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp:2092
@@ -2085,3 +2091,3 @@
         SymbolType symbol_type = eSymbolTypeInvalid;
         Elf64_Half symbol_idx = symbol.st_shndx;
 
----------------
This variable has a really bad name. We should change "symbol_idx" to "section_idx" and make this const:
```
const Elf64_Half section_idx = symbol.st_shndx;
```

================
Comment at: source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp:2291
@@ +2290,3 @@
+
+        if (symbol_section_sp == nullptr && symbol.st_size != 0)
+        {
----------------
Shouldn't this just be:

```
if (!symbol_section_sp && symbol.st_shndx != SHN_UNDEF  && symbol.st_size != 0)
```

We need to know if a symbol has an address and it only has an address if symbol.st_shndx != SHN_UNDEF. All other section types mean that the symbol actually has an address


http://reviews.llvm.org/D17450





More information about the lldb-commits mailing list