Go to the documentation of this file.
53 using ReferenceManager::SafePointer;
54 using ReferenceManager::SectionIndexKey;
55 using ReferenceManager::SectionOffsetKey;
56 using ReferenceManager::SectionKey;
110 assert(symbolSection != NULL);
114 bool undefSymbolDefined =
false;
123 while (elementStart +
header().elementSize <=
128 Word nameOffset = stream.
readWord();
145 elem =
createSymbol(typeOfSym, value, size, sectionToBelong);
151 elem->
setName(CREATE_SAFEPOINTER(sOffKey));
167 undefSymbolDefined =
true;
180 if (!undefSymbolDefined) {
185 elem->
setName(CREATE_SAFEPOINTER(sOffKey));
227 if (sectToBelong != 0) {
230 (elem)->setReference(CREATE_SAFEPOINTER(sOffKey));
232 (elem)->setSize(aSize);
240 if (sectToBelong != 0) {
243 (elem)->setReference(CREATE_SAFEPOINTER(sOffKey));
246 (elem)->setSize(aSize);
HalfWord SectionId
Type for storing binary file section ids.
virtual void readData(BinaryStream &stream, Section *section) const
@ STT_PROCEDURE
Symbol gives indicates procedure start position in section.
void setReadPosition(unsigned int position)
SymbolElement * createSymbol(SymbolElement::SymbolType symType, Word aValue, Word aSize, SectionId sectToBelong) const
SymbolType
Type of symbol element.
@ STT_FILE
Name of symbol gives the name of source file associated with this object file.
static const Byte SYMBOL_TYPE_MASK
Mask for getting type of symbol from st_info field of symbol element.
SymbolBinding binding() const
@ STT_SECTION
Associated with section.
void setBinding(SymbolBinding aBinding)
static void addObjectReference(SectionIndexKey key, const SafePointable *obj)
#define assert(condition)
virtual void addElement(SectionElement *element)
virtual SymbolType type() const =0
Returns type of symbol.
SymbolElement::SymbolBinding SymbolBinding
virtual Section::SectionType type() const
void setSection(Section *aSect)
static TPEFSymbolSectionReader proto_
Prototype instance of TPEFSymbolSectionReader to be registered to SectionReader.
static void registerSectionReader(const SectionReader *sReader)
void setName(Chunk *aName)
@ STT_CODE
Associated with executable code.
Word SectionOffset
Type for storing offsets relative to a given base offset value.
virtual void readData(BinaryStream &stream, Section *section) const
SymbolBinding
Binding types of symbol.
void setAbsolute(bool anAbsoluteness)
@ STT_DATA
Associated with data object.
@ STT_NOTYPE
Type is not defined.
Word SectionIndex
Type for storing section indexes.
SymbolElement::SymbolType SymbolType
virtual ~TPEFSymbolSectionReader()
TPEFSymbolSectionReader()
@ STB_LOCAL
Not visible outside the object file that contains it's definition.
static const Header & header()