LLVM: llvm::objcopy:🧝:SymbolTableSection Class Reference (original) (raw)

#include "[ObjCopy/ELF/ELFObject.h](ELFObject%5F8h%5Fsource.html)"

Public Member Functions
SymbolTableSection ()
void addSymbol (Twine Name, uint8_t Bind, uint8_t Type, SectionBase *DefinedIn, uint64_t Value, uint8_t Visibility, uint16_t Shndx, uint64_t SymbolSize)
void prepareForLayout ()
bool empty () const
bool indicesChanged () const
void setShndxTable (SectionIndexSection *ShndxTable)
const SectionIndexSection * getShndxTable () const
void fillShndxTable ()
const SectionBase * getStrTab () const
Expected< const Symbol * > getSymbolByIndex (uint32_t Index) const
Expected< Symbol * > getSymbolByIndex (uint32_t Index)
void updateSymbols (function_ref< void(Symbol &)> Callable)
Error removeSectionReferences (bool AllowBrokenLinks, function_ref< bool(const SectionBase *)> ToRemove) override
Error initialize (SectionTableRef SecTable) override
void finalize () override
Error accept (SectionVisitor &Visitor) const override
Error accept (MutableSectionVisitor &Visitor) override
Error removeSymbols (function_ref< bool(const Symbol &)> ToRemove) override
void replaceSectionReferences (const DenseMap< SectionBase *, SectionBase * > &FromTo) override
Public Member Functions inherited from llvm::objcopy:🧝:SectionBase
SectionBase ()=default
SectionBase (const SectionBase &)=default
virtual ~SectionBase ()=default
virtual void markSymbols ()
virtual bool hasContents () const
virtual ArrayRef< uint8_t > getContents () const
virtual void onRemove ()
virtual void restoreSymTabLink (SymbolTableSection &)
Protected Types
using SymPtr = std::unique_ptr<Symbol>
Additional Inherited Members
Public Attributes inherited from llvm::objcopy:🧝:SectionBase
std::string Name
Segment * ParentSegment = nullptr
uint64_t HeaderOffset = 0
uint32_t Index = 0
uint32_t OriginalIndex = 0
uint64_t OriginalFlags = 0
uint64_t OriginalType = ELF::SHT_NULL
uint64_t OriginalOffset = std::numeric_limits<uint64_t>::max()
uint64_t Addr = 0
uint64_t Align = 1
uint32_t EntrySize = 0
uint64_t Flags = 0
uint64_t Info = 0
uint64_t Link = ELF::SHN_UNDEF
uint64_t NameIndex = 0
uint64_t Offset = 0
uint64_t Size = 0
uint64_t Type = ELF::SHT_NULL
ArrayRef< uint8_t > OriginalData
bool HasSymbol = false

Definition at line 811 of file ELFObject.h.

β—† SymPtr

llvm::objcopy:🧝:SymbolTableSection::SymbolTableSection ( ) inline

β—† accept() [1/2]

β—† accept() [2/2]

β—† addSymbol()

Definition at line 714 of file ELFObject.cpp.

References llvm::objcopy:🧝:Symbol::Binding, llvm::objcopy:🧝:Symbol::DefinedIn, llvm::objcopy:🧝:SectionBase::EntrySize, llvm::objcopy:🧝:SectionBase::HasSymbol, llvm::objcopy:🧝:Symbol::Index, llvm::objcopy:🧝:SectionBase::Name, llvm::objcopy:🧝:Symbol::Name, llvm::objcopy:🧝:SectionBase::SectionBase(), llvm::ELF::SHN_LORESERVE, llvm::objcopy:🧝:Symbol::ShndxType, llvm::objcopy:🧝:SectionBase::Size, llvm::objcopy:🧝:Symbol::Size, llvm::objcopy:🧝:SYMBOL_SIMPLE_INDEX, Symbols, llvm::objcopy:🧝:SectionBase::Type, llvm::objcopy:🧝:Symbol::Type, llvm::objcopy:🧝:Symbol::Value, and llvm::objcopy:🧝:Symbol::Visibility.

Referenced by llvm::objcopy:🧝:Object::addNewSymbolTable().

β—† classof()

β—† empty()

bool llvm::objcopy:🧝:SymbolTableSection::empty ( ) const inline

β—† fillShndxTable()

void SymbolTableSection::fillShndxTable ( )

β—† finalize()

void SymbolTableSection::finalize ( ) overridevirtual

β—† getShndxTable()

β—† getStrTab()

const SectionBase * llvm::objcopy:🧝:SymbolTableSection::getStrTab ( ) const inline

β—† getSymbolByIndex() [1/2]

β—† getSymbolByIndex() [2/2]

β—† indicesChanged()

bool llvm::objcopy:🧝:SymbolTableSection::indicesChanged ( ) const inline

β—† initialize()

β—† prepareForLayout()

void SymbolTableSection::prepareForLayout ( )

β—† removeSectionReferences()

β—† removeSymbols()

β—† replaceSectionReferences()

β—† setShndxTable()

void llvm::objcopy:🧝:SymbolTableSection::setShndxTable ( SectionIndexSection * ShndxTable) inline

β—† updateSymbols()

β—† IndicesChanged

bool llvm::objcopy:🧝:SymbolTableSection::IndicesChanged = false protected

β—† SectionIndexTable

β—† SymbolNames

β—† Symbols

std::vector<std::unique_ptr<Symbol> > llvm::objcopy:🧝:SymbolTableSection::Symbols protected

Definition at line 818 of file ELFObject.h.

Referenced by addSymbol(), empty(), fillShndxTable(), finalize(), getSymbolByIndex(), prepareForLayout(), removeSymbols(), replaceSectionReferences(), updateSymbols(), llvm::objcopy:🧝:ELFSectionSizer< ELFT >::visit(), and llvm::objcopy:🧝:ELFSectionWriter< ELFT >::visit().


The documentation for this class was generated from the following files: