#include <emitElf-64.h>
Public Member Functions | |
| emitElf64 (Elf_X *oldElfHandle_, bool isStripped_=false, Object *obj_=NULL, void(*)(const char *)=log_msg) | |
| ~emitElf64 () | |
| bool | createSymbolTables (Symtab *obj, vector< Symbol * > &allSymbols) |
| bool | driver (Symtab *obj, std::string fName) |
Private Member Functions | |
| bool | createElfSymbol (Symbol *symbol, unsigned strIndex, vector< Elf64_Sym * > &symbols, bool dynSymFlag=false) |
| void | findSegmentEnds () |
| void | renameSection (const std::string &oldStr, const std::string &newStr, bool renameAll=true) |
| void | fixPhdrs (unsigned &) |
| void | createNewPhdrRegion (dyn_hash_map< std::string, unsigned > &newNameIndexMapping) |
| bool | addSectionHeaderTable (Elf64_Shdr *shdr) |
| bool | createNonLoadableSections (Elf64_Shdr *&shdr) |
| bool | createLoadableSections (Symtab *obj, Elf64_Shdr *&shdr, unsigned &extraAlignSize, dyn_hash_map< std::string, unsigned > &newIndexMapping, unsigned §ionNumber) |
| void | createRelocationSections (Symtab *obj, std::vector< relocationEntry > &relocation_table, bool isDynRelocs, dyn_hash_map< std::string, unsigned long > &dynSymNameMapping) |
| void | updateSymbols (Elf_Data *symtabData, Elf_Data *strData, unsigned long loadSecsSize) |
| void | updateDynamic (unsigned tag, Elf64_Addr val) |
| void | createSymbolVersions (Symtab *obj, Elf64_Half *&symVers, char *&verneedSecData, unsigned &verneedSecSize, char *&verdefSecData, unsigned &verdefSecSize, unsigned &dynSymbolNamesLength, std::vector< std::string > &dynStrs) |
| void | createHashSection (Symtab *obj, Elf64_Word *&hashsecData, unsigned &hashsecSize, std::vector< Symbol * > &dynSymbols) |
| void | createDynamicSection (void *dynData, unsigned size, Elf64_Dyn *&dynsecData, unsigned &dynsecSize, unsigned &dynSymbolNamesLength, std::vector< std::string > &dynStrs) |
| void | addDTNeeded (std::string s) |
| void | log_elferror (void(*err_func)(const char *), const char *msg) |
| bool | hasPHdrSectionBug () |
| bool | cannotRelocatePhdrs () |
Private Attributes | |
| Elf_X * | oldElfHandle |
| Elf * | newElf |
| Elf * | oldElf |
| Elf64_Ehdr * | newEhdr |
| Elf64_Ehdr * | oldEhdr |
| Elf64_Phdr * | newPhdr |
| Elf64_Phdr * | oldPhdr |
| Offset | phdr_offset |
| Elf_Data * | textData |
| Elf_Data * | symStrData |
| Elf_Data * | dynStrData |
| char * | olddynStrData |
| unsigned | olddynStrSize |
| Elf_Data * | symTabData |
| Elf_Data * | hashData |
| Elf_Data * | dynsymData |
| Elf_Data * | dynData |
| Elf_Data * | rodata |
| Elf_Data * | dataData |
| Elf64_Shdr * | textSh |
| Elf64_Shdr * | rodataSh |
| Elf_Scn * | phdrs_scn |
| std::vector< Region * > | nonLoadableSecs |
| std::vector< Region * > | newSecs |
| std::map< unsigned, std::vector< Elf64_Dyn * > > | dynamicSecData |
| std::vector< std::string > | DT_NEEDEDEntries |
| std::vector< std::pair< long, long > > | new_dynamic_entries |
| std::vector< std::string > | unversionedNeededEntries |
| std::map< std::string, std::map< std::string, unsigned > > | verneedEntries |
| std::map< std::string, unsigned > | verdefEntries |
| std::map< unsigned, std::vector< std::string > > | verdauxEntries |
| std::map< std::string, unsigned > | versionNames |
| std::vector< Elf64_Half > | versionSymTable |
| int | curVersionNum |
| int | verneednum |
| int | verdefnum |
| Elf64_Off | newSegmentStart |
| Elf64_Shdr * | firstNewLoadSec |
| Elf64_Off | dataSegEnd |
| Elf64_Off | textSegEnd |
| Elf64_Off | dynSegOff |
| Elf64_Off | dynSegAddr |
| Elf64_Off | phdrSegOff |
| Elf64_Off | phdrSegAddr |
| unsigned | dynSegSize |
| vector< std::string > | secNames |
| unsigned | secNameIndex |
| Offset | currEndOffset |
| Address | currEndAddress |
| char * | linkedStaticData |
| bool | BSSExpandFlag |
| bool | movePHdrsFirst |
| bool | createNewPhdr |
| bool | replaceNOTE |
| unsigned | loadSecTotalSize |
| bool | isStripped |
| int | library_adjust |
| Object * | object |
| void(* | err_func_ )(const char *) |
| bool | hasRewrittenTLS |
| bool | TLSExists |
| Elf64_Shdr * | newTLSData |
Definition at line 41 of file emitElf-64.h.
| emitElf64::emitElf64 | ( | Elf_X * | oldElfHandle_, | |
| bool | isStripped_ = false, |
|||
| Object * | obj_ = NULL, |
|||
| void(*)(const char *) | err_func = log_msg | |||
| ) |
Definition at line 177 of file emitElf-64.C.
References BSSExpandFlag, cannotRelocatePhdrs(), createNewPhdr, curVersionNum, dynStrData, dynsymData, Dyninst::Elf_X::e_elfp(), firstNewLoadSec, hashData, hasRewrittenTLS, Dyninst::SymtabAPI::Object::isBlueGeneQ(), isBlueGeneQ, Dyninst::SymtabAPI::AObject::isStaticBinary(), isStaticBinary, library_adjust, linkedStaticData, movePHdrsFirst, newTLSData, oldElf, oldElfHandle, replaceNOTE, rodata, setVersion(), symStrData, symTabData, textData, and TLSExists.
| Dyninst::SymtabAPI::emitElf64::~emitElf64 | ( | ) | [inline] |
Definition at line 44 of file emitElf-64.h.
References linkedStaticData.
| void Dyninst::SymtabAPI::emitElf64::addDTNeeded | ( | std::string | s | ) | [private] |
Referenced by createSymbolTables().
| bool emitElf64::addSectionHeaderTable | ( | Elf64_Shdr * | shdr | ) | [private] |
Definition at line 1511 of file emitElf-64.C.
References err_func_, FILE__, fprintf, log_elferror(), newElf, secNameIndex, and secNames.
| bool emitElf64::cannotRelocatePhdrs | ( | ) | [private] |
Definition at line 131 of file emitElf-64.C.
Referenced by emitElf64().
| void emitElf64::createDynamicSection | ( | void * | dynData, | |
| unsigned | size, | |||
| Elf64_Dyn *& | dynsecData, | |||
| unsigned & | dynsecSize, | |||
| unsigned & | dynSymbolNamesLength, | |||
| std::vector< std::string > & | dynStrs | |||
| ) | [private] |
List every dynamic entry that references an address and isn't already updated here. library_adjust will be a page size if we're dealing with a library without a fixed load address. We'll be shifting the addresses of that library by a page.
Definition at line 2416 of file emitElf-64.C.
References DT_GNU_CONFLICT, DT_NEEDEDEntries, dynamicSecData, Dyninst::SymtabAPI::Object::getRelType(), Dyninst::SymtabAPI::Object::hasReldyn(), library_adjust, new_dynamic_entries, object, olddynStrData, Dyninst::SymtabAPI::Region::RT_REL, and Dyninst::SymtabAPI::Region::RT_RELA.
Referenced by createSymbolTables().
| bool emitElf64::createElfSymbol | ( | Symbol * | symbol, | |
| unsigned | strIndex, | |||
| vector< Elf64_Sym * > & | symbols, | |||
| bool | dynSymFlag = false | |||
| ) | [private] |
Definition at line 244 of file emitElf-64.C.
References curVersionNum, elfSymBind(), elfSymType(), elfSymVisibility(), FILE__, fprintf, Dyninst::SymtabAPI::Symbol::getLinkage(), Dyninst::SymtabAPI::Symbol::getMangledName(), Dyninst::SymtabAPI::Symbol::getOffset(), Dyninst::SymtabAPI::Symbol::getPtrOffset(), Dyninst::SymtabAPI::Symbol::getReferringSymbol(), Dyninst::SymtabAPI::Symbol::getRegion(), Dyninst::SymtabAPI::Region::getRegionNumber(), Dyninst::SymtabAPI::Symbol::getSize(), Dyninst::SymtabAPI::Symbol::getSymtab(), Dyninst::SymtabAPI::Symbol::getVersionFileName(), Dyninst::SymtabAPI::Symbol::getVersionHidden(), Dyninst::SymtabAPI::Symbol::getVersions(), Dyninst::SymtabAPI::Symbol::getVisibility(), Dyninst::SymtabAPI::Symbol::isAbsolute(), Dyninst::SymtabAPI::Symtab::isExec(), library_adjust, Dyninst::SymtabAPI::Symbol::SL_GLOBAL, unversionedNeededEntries, verdauxEntries, verdefEntries, verneedEntries, versionNames, and versionSymTable.
Referenced by createSymbolTables().
| void Dyninst::SymtabAPI::emitElf64::createHashSection | ( | Symtab * | obj, | |
| Elf64_Word *& | hashsecData, | |||
| unsigned & | hashsecSize, | |||
| std::vector< Symbol * > & | dynSymbols | |||
| ) | [private] |
Referenced by createSymbolTables().
| bool emitElf64::createLoadableSections | ( | Symtab * | obj, | |
| Elf64_Shdr *& | shdr, | |||
| unsigned & | extraAlignSize, | |||
| dyn_hash_map< std::string, unsigned > & | newIndexMapping, | |||
| unsigned & | sectionNumber | |||
| ) | [private] |
Definition at line 1226 of file emitElf-64.C.
References bgq_sh_flags, createNewPhdr, currEndAddress, currEndOffset, dynSegAddr, dynSegOff, dynSegSize, dynStrData, dynsymData, err_func_, FILE__, firstNewLoadSec, fprintf, getRegionType(), isBlueGeneQ, library_adjust, loadSecTotalSize, log_elferror(), newElf, newSecs, newSegmentStart, newTLSData, nonLoadableSecs, Dyninst::SymtabAPI::emitElfUtils::orderLoadableSections(), replaceNOTE, rewrite_printf(), Dyninst::SymtabAPI::Region::RT_BSS, Dyninst::SymtabAPI::Region::RT_DATA, Dyninst::SymtabAPI::Region::RT_DYNAMIC, Dyninst::SymtabAPI::Region::RT_HASH, Dyninst::SymtabAPI::Region::RT_PLTREL, Dyninst::SymtabAPI::Region::RT_PLTRELA, Dyninst::SymtabAPI::Region::RT_REL, Dyninst::SymtabAPI::Region::RT_RELA, Dyninst::SymtabAPI::Region::RT_STRTAB, Dyninst::SymtabAPI::Region::RT_SYMTAB, Dyninst::SymtabAPI::Region::RT_SYMVERDEF, Dyninst::SymtabAPI::Region::RT_SYMVERNEEDED, Dyninst::SymtabAPI::Region::RT_SYMVERSIONS, Dyninst::SymtabAPI::Region::RT_TEXT, Dyninst::SymtabAPI::Region::RT_TEXTDATA, secNameIndex, secNames, and updateDynamic().
| void emitElf64::createNewPhdrRegion | ( | dyn_hash_map< std::string, unsigned > & | newNameIndexMapping | ) | [private] |
Definition at line 877 of file emitElf-64.C.
References bgq_sh_flags, createNewPhdr, currEndAddress, currEndOffset, isBlueGeneQ, loadSecTotalSize, movePHdrsFirst, newEhdr, newElf, oldEhdr, phdr_offset, phdrs_scn, phdrSegAddr, phdrSegOff, secNameIndex, and secNames.
| bool emitElf64::createNonLoadableSections | ( | Elf64_Shdr *& | shdr | ) | [private] |
Definition at line 1567 of file emitElf-64.C.
References currEndOffset, err_func_, FILE__, fprintf, getRegionType(), log_elferror(), newElf, nonLoadableSecs, Dyninst::SymtabAPI::Region::RT_DATA, Dyninst::SymtabAPI::Region::RT_REL, Dyninst::SymtabAPI::Region::RT_RELA, Dyninst::SymtabAPI::Region::RT_STRTAB, Dyninst::SymtabAPI::Region::RT_SYMTAB, Dyninst::SymtabAPI::Region::RT_TEXT, secNameIndex, and secNames.
| void emitElf64::createRelocationSections | ( | Symtab * | obj, | |
| std::vector< relocationEntry > & | relocation_table, | |||
| bool | isDynRelocs, | |||
| dyn_hash_map< std::string, unsigned long > & | dynSymNameMapping | |||
| ) | [private] |
Definition at line 2044 of file emitElf-64.C.
References Dyninst::SymtabAPI::Object::getRelType(), library_adjust, newSecs, object, Dyninst::SymtabAPI::Region::RT_REL, Dyninst::SymtabAPI::Region::RT_RELA, and Dyninst::SymtabAPI::emitElfUtils::updateRelocation().
Referenced by createSymbolTables().
Definition at line 1693 of file emitElf-64.C.
References addDTNeeded(), Dyninst::SymtabAPI::Symtab::addRegion(), createDynamicSection(), createElfSymbol(), createHashSection(), createRelocationSections(), createSymbolVersions(), Dyninst::SymtabAPI::Object::deps_, Dyninst::SymtabAPI::Emit_Error, err_func_, errMsg, Dyninst::SymtabAPI::Symtab::findRegion(), Dyninst::SymtabAPI::Symtab::getAddressWidth(), Dyninst::SymtabAPI::Symtab::getAllNewRegions(), Dyninst::SymtabAPI::Region::getDiskSize(), Dyninst::SymtabAPI::Object::getDynRelocs(), Dyninst::SymtabAPI::Region::getMemSize(), Dyninst::SymtabAPI::Symtab::getObject(), Dyninst::SymtabAPI::Object::getPLTRelocs(), Dyninst::SymtabAPI::Region::getPtrToRawData(), Dyninst::SymtabAPI::Object::getRelPLTAddr(), Dyninst::SymtabAPI::Object::getTagRegionMapping(), hasRewrittenTLS, Dyninst::SymtabAPI::Symtab::isStaticBinary(), isStripped, linkedStaticData, log_elferror(), Dyninst::SymtabAPI::Symbol::magicEmitElfSymbol(), Dyninst::SymtabAPI::Symtab::name(), Dyninst::SymtabAPI::Object::new_dynamic_entries, new_dynamic_entries, newSecs, olddynStrData, olddynStrSize, Dyninst::SymtabAPI::Object::prereq_libs, Dyninst::SymtabAPI::emitElfStatic::printStaticLinkError(), rewrite_printf(), Dyninst::SymtabAPI::Region::RT_DYNAMIC, Dyninst::SymtabAPI::Region::RT_HASH, Dyninst::SymtabAPI::Region::RT_STRTAB, Dyninst::SymtabAPI::Region::RT_SYMTAB, Dyninst::SymtabAPI::Region::RT_SYMVERDEF, Dyninst::SymtabAPI::Region::RT_SYMVERNEEDED, Dyninst::SymtabAPI::Region::RT_SYMVERSIONS, Dyninst::SymtabAPI::Region::setPtrToRawData(), setSymtabError(), symtab_log_perror(), Dyninst::SymtabAPI::emitElfUtils::updateHeapVariables(), and versionSymTable.
Referenced by Dyninst::SymtabAPI::Object::emitDriver().
| void Dyninst::SymtabAPI::emitElf64::createSymbolVersions | ( | Symtab * | obj, | |
| Elf64_Half *& | symVers, | |||
| char *& | verneedSecData, | |||
| unsigned & | verneedSecSize, | |||
| char *& | verdefSecData, | |||
| unsigned & | verdefSecSize, | |||
| unsigned & | dynSymbolNamesLength, | |||
| std::vector< std::string > & | dynStrs | |||
| ) | [private] |
Referenced by createSymbolTables().
| bool Dyninst::SymtabAPI::emitElf64::driver | ( | Symtab * | obj, | |
| std::string | fName | |||
| ) |
Referenced by Dyninst::SymtabAPI::Object::emitDriver().
| void emitElf64::findSegmentEnds | ( | ) | [private] |
Definition at line 435 of file emitElf-64.C.
References dataSegEnd, oldEhdr, oldElf, and TLSExists.
| void emitElf64::fixPhdrs | ( | unsigned & | extraAlignSize | ) | [private] |
Definition at line 924 of file emitElf-64.C.
References BSSExpandFlag, createNewPhdr, currEndAddress, dynSegAddr, dynSegOff, dynSegSize, firstNewLoadSec, fprintf, hasPHdrSectionBug(), hasRewrittenTLS, isBlueGeneQ, isStaticBinary, library_adjust, loadSecTotalSize, movePHdrsFirst, newEhdr, newElf, newPhdr, newSegmentStart, newTLSData, oldEhdr, oldPhdr, phdrs_scn, phdrSegAddr, replaceNOTE, rewrite_printf(), and TLSExists.
| bool emitElf64::hasPHdrSectionBug | ( | ) | [private] |
Definition at line 122 of file emitElf-64.C.
References libelfso1Flag, libelfso1version_major, libelfso1version_minor, and movePHdrsFirst.
Referenced by fixPhdrs().
| void emitElf64::log_elferror | ( | void(*)(const char *) | err_func, | |
| const char * | msg | |||
| ) | [private] |
Definition at line 2561 of file emitElf-64.C.
Referenced by addSectionHeaderTable(), createLoadableSections(), createNonLoadableSections(), and createSymbolTables().
| void emitElf64::renameSection | ( | const std::string & | oldStr, | |
| const std::string & | newStr, | |||
| bool | renameAll = true | |||
| ) | [private] |
Definition at line 457 of file emitElf-64.C.
References secNames.
| void emitElf64::updateDynamic | ( | unsigned | tag, | |
| Elf64_Addr | val | |||
| ) | [private] |
Definition at line 1163 of file emitElf-64.C.
References DT_GNU_HASH, dynamicSecData, isStaticBinary, verdefnum, and verneednum.
Referenced by createLoadableSections().
| void emitElf64::updateSymbols | ( | Elf_Data * | symtabData, | |
| Elf_Data * | strData, | |||
| unsigned long | loadSecsSize | |||
| ) | [private] |
Definition at line 1201 of file emitElf-64.C.
References newSegmentStart.
bool Dyninst::SymtabAPI::emitElf64::BSSExpandFlag [private] |
Definition at line 118 of file emitElf-64.h.
Referenced by emitElf64(), and fixPhdrs().
bool Dyninst::SymtabAPI::emitElf64::createNewPhdr [private] |
Definition at line 120 of file emitElf-64.h.
Referenced by createLoadableSections(), createNewPhdrRegion(), emitElf64(), and fixPhdrs().
Definition at line 110 of file emitElf-64.h.
Referenced by createLoadableSections(), createNewPhdrRegion(), and fixPhdrs().
Definition at line 109 of file emitElf-64.h.
Referenced by createLoadableSections(), createNewPhdrRegion(), and createNonLoadableSections().
int Dyninst::SymtabAPI::emitElf64::curVersionNum [private] |
Definition at line 95 of file emitElf-64.h.
Referenced by createElfSymbol(), and emitElf64().
Elf_Data* Dyninst::SymtabAPI::emitElf64::dataData [private] |
Definition at line 75 of file emitElf-64.h.
Elf64_Off Dyninst::SymtabAPI::emitElf64::dataSegEnd [private] |
Definition at line 102 of file emitElf-64.h.
Referenced by findSegmentEnds().
std::vector<std::string> Dyninst::SymtabAPI::emitElf64::DT_NEEDEDEntries [private] |
Definition at line 85 of file emitElf-64.h.
Referenced by createDynamicSection().
std::map<unsigned, std::vector<Elf64_Dyn *> > Dyninst::SymtabAPI::emitElf64::dynamicSecData [private] |
Definition at line 84 of file emitElf-64.h.
Referenced by createDynamicSection(), and updateDynamic().
Elf_Data* Dyninst::SymtabAPI::emitElf64::dynData [private] |
Definition at line 73 of file emitElf-64.h.
Elf64_Off Dyninst::SymtabAPI::emitElf64::dynSegAddr [private] |
Definition at line 103 of file emitElf-64.h.
Referenced by createLoadableSections(), and fixPhdrs().
Elf64_Off Dyninst::SymtabAPI::emitElf64::dynSegOff [private] |
Definition at line 103 of file emitElf-64.h.
Referenced by createLoadableSections(), and fixPhdrs().
unsigned Dyninst::SymtabAPI::emitElf64::dynSegSize [private] |
Definition at line 104 of file emitElf-64.h.
Referenced by createLoadableSections(), and fixPhdrs().
Elf_Data* Dyninst::SymtabAPI::emitElf64::dynStrData [private] |
Definition at line 67 of file emitElf-64.h.
Referenced by createLoadableSections(), and emitElf64().
Elf_Data* Dyninst::SymtabAPI::emitElf64::dynsymData [private] |
Definition at line 72 of file emitElf-64.h.
Referenced by createLoadableSections(), and emitElf64().
void(* Dyninst::SymtabAPI::emitElf64::err_func_)(const char *) [private] |
Referenced by addSectionHeaderTable(), createLoadableSections(), createNonLoadableSections(), and createSymbolTables().
Elf64_Shdr* Dyninst::SymtabAPI::emitElf64::firstNewLoadSec [private] |
Definition at line 99 of file emitElf-64.h.
Referenced by createLoadableSections(), emitElf64(), and fixPhdrs().
Elf_Data* Dyninst::SymtabAPI::emitElf64::hashData [private] |
Definition at line 71 of file emitElf-64.h.
Referenced by emitElf64().
bool Dyninst::SymtabAPI::emitElf64::hasRewrittenTLS [private] |
Definition at line 145 of file emitElf-64.h.
Referenced by createSymbolTables(), emitElf64(), and fixPhdrs().
bool Dyninst::SymtabAPI::emitElf64::isStripped [private] |
Definition at line 124 of file emitElf-64.h.
Referenced by createSymbolTables().
int Dyninst::SymtabAPI::emitElf64::library_adjust [private] |
Definition at line 125 of file emitElf-64.h.
Referenced by createDynamicSection(), createElfSymbol(), createLoadableSections(), createRelocationSections(), emitElf64(), and fixPhdrs().
char* Dyninst::SymtabAPI::emitElf64::linkedStaticData [private] |
Definition at line 114 of file emitElf-64.h.
Referenced by createSymbolTables(), emitElf64(), and ~emitElf64().
unsigned Dyninst::SymtabAPI::emitElf64::loadSecTotalSize [private] |
Definition at line 122 of file emitElf-64.h.
Referenced by createLoadableSections(), createNewPhdrRegion(), and fixPhdrs().
bool Dyninst::SymtabAPI::emitElf64::movePHdrsFirst [private] |
Definition at line 119 of file emitElf-64.h.
Referenced by createNewPhdrRegion(), emitElf64(), fixPhdrs(), and hasPHdrSectionBug().
std::vector<std::pair<long, long> > Dyninst::SymtabAPI::emitElf64::new_dynamic_entries [private] |
Definition at line 86 of file emitElf-64.h.
Referenced by createDynamicSection(), and createSymbolTables().
Elf64_Ehdr* Dyninst::SymtabAPI::emitElf64::newEhdr [private] |
Definition at line 56 of file emitElf-64.h.
Referenced by createNewPhdrRegion(), and fixPhdrs().
Elf* Dyninst::SymtabAPI::emitElf64::newElf [private] |
Definition at line 52 of file emitElf-64.h.
Referenced by addSectionHeaderTable(), createLoadableSections(), createNewPhdrRegion(), createNonLoadableSections(), and fixPhdrs().
Elf64_Phdr* Dyninst::SymtabAPI::emitElf64::newPhdr [private] |
Definition at line 59 of file emitElf-64.h.
Referenced by fixPhdrs().
std::vector<Region *> Dyninst::SymtabAPI::emitElf64::newSecs [private] |
Definition at line 83 of file emitElf-64.h.
Referenced by createLoadableSections(), createRelocationSections(), and createSymbolTables().
Elf64_Off Dyninst::SymtabAPI::emitElf64::newSegmentStart [private] |
Definition at line 98 of file emitElf-64.h.
Referenced by createLoadableSections(), fixPhdrs(), and updateSymbols().
Elf64_Shdr* Dyninst::SymtabAPI::emitElf64::newTLSData [private] |
Definition at line 147 of file emitElf-64.h.
Referenced by createLoadableSections(), emitElf64(), and fixPhdrs().
std::vector<Region *> Dyninst::SymtabAPI::emitElf64::nonLoadableSecs [private] |
Definition at line 82 of file emitElf-64.h.
Referenced by createLoadableSections(), and createNonLoadableSections().
Object* Dyninst::SymtabAPI::emitElf64::object [private] |
Definition at line 126 of file emitElf-64.h.
Referenced by createDynamicSection(), and createRelocationSections().
char* Dyninst::SymtabAPI::emitElf64::olddynStrData [private] |
Definition at line 68 of file emitElf-64.h.
Referenced by createDynamicSection(), and createSymbolTables().
unsigned Dyninst::SymtabAPI::emitElf64::olddynStrSize [private] |
Definition at line 69 of file emitElf-64.h.
Referenced by createSymbolTables().
Elf64_Ehdr* Dyninst::SymtabAPI::emitElf64::oldEhdr [private] |
Definition at line 57 of file emitElf-64.h.
Referenced by createNewPhdrRegion(), findSegmentEnds(), and fixPhdrs().
Elf* Dyninst::SymtabAPI::emitElf64::oldElf [private] |
Definition at line 53 of file emitElf-64.h.
Referenced by emitElf64(), and findSegmentEnds().
Elf_X* Dyninst::SymtabAPI::emitElf64::oldElfHandle [private] |
Definition at line 51 of file emitElf-64.h.
Referenced by emitElf64().
Elf64_Phdr* Dyninst::SymtabAPI::emitElf64::oldPhdr [private] |
Definition at line 60 of file emitElf-64.h.
Referenced by fixPhdrs().
Definition at line 61 of file emitElf-64.h.
Referenced by createNewPhdrRegion().
Elf_Scn* Dyninst::SymtabAPI::emitElf64::phdrs_scn [private] |
Definition at line 80 of file emitElf-64.h.
Referenced by createNewPhdrRegion(), and fixPhdrs().
Elf64_Off Dyninst::SymtabAPI::emitElf64::phdrSegAddr [private] |
Definition at line 103 of file emitElf-64.h.
Referenced by createNewPhdrRegion(), and fixPhdrs().
Elf64_Off Dyninst::SymtabAPI::emitElf64::phdrSegOff [private] |
Definition at line 103 of file emitElf-64.h.
Referenced by createNewPhdrRegion().
bool Dyninst::SymtabAPI::emitElf64::replaceNOTE [private] |
Definition at line 121 of file emitElf-64.h.
Referenced by createLoadableSections(), emitElf64(), and fixPhdrs().
Elf_Data* Dyninst::SymtabAPI::emitElf64::rodata [private] |
Definition at line 74 of file emitElf-64.h.
Referenced by emitElf64().
Elf64_Shdr* Dyninst::SymtabAPI::emitElf64::rodataSh [private] |
Definition at line 78 of file emitElf-64.h.
unsigned Dyninst::SymtabAPI::emitElf64::secNameIndex [private] |
Definition at line 108 of file emitElf-64.h.
Referenced by addSectionHeaderTable(), createLoadableSections(), createNewPhdrRegion(), and createNonLoadableSections().
vector<std::string> Dyninst::SymtabAPI::emitElf64::secNames [private] |
Definition at line 107 of file emitElf-64.h.
Referenced by addSectionHeaderTable(), createLoadableSections(), createNewPhdrRegion(), createNonLoadableSections(), and renameSection().
Elf_Data* Dyninst::SymtabAPI::emitElf64::symStrData [private] |
Definition at line 66 of file emitElf-64.h.
Referenced by emitElf64().
Elf_Data* Dyninst::SymtabAPI::emitElf64::symTabData [private] |
Definition at line 70 of file emitElf-64.h.
Referenced by emitElf64().
Elf_Data* Dyninst::SymtabAPI::emitElf64::textData [private] |
Definition at line 65 of file emitElf-64.h.
Referenced by emitElf64().
Elf64_Off Dyninst::SymtabAPI::emitElf64::textSegEnd [private] |
Definition at line 102 of file emitElf-64.h.
Elf64_Shdr* Dyninst::SymtabAPI::emitElf64::textSh [private] |
Definition at line 77 of file emitElf-64.h.
bool Dyninst::SymtabAPI::emitElf64::TLSExists [private] |
Definition at line 146 of file emitElf-64.h.
Referenced by emitElf64(), findSegmentEnds(), and fixPhdrs().
std::vector<std::string> Dyninst::SymtabAPI::emitElf64::unversionedNeededEntries [private] |
Definition at line 87 of file emitElf-64.h.
Referenced by createElfSymbol().
std::map<unsigned, std::vector<std::string> > Dyninst::SymtabAPI::emitElf64::verdauxEntries [private] |
Definition at line 92 of file emitElf-64.h.
Referenced by createElfSymbol().
std::map<std::string, unsigned> Dyninst::SymtabAPI::emitElf64::verdefEntries [private] |
Definition at line 91 of file emitElf-64.h.
Referenced by createElfSymbol().
int Dyninst::SymtabAPI::emitElf64::verdefnum [private] |
Definition at line 95 of file emitElf-64.h.
Referenced by updateDynamic().
std::map<std::string, std::map<std::string, unsigned> > Dyninst::SymtabAPI::emitElf64::verneedEntries [private] |
Definition at line 90 of file emitElf-64.h.
Referenced by createElfSymbol().
int Dyninst::SymtabAPI::emitElf64::verneednum [private] |
Definition at line 95 of file emitElf-64.h.
Referenced by updateDynamic().
std::map<std::string, unsigned> Dyninst::SymtabAPI::emitElf64::versionNames [private] |
Definition at line 93 of file emitElf-64.h.
Referenced by createElfSymbol().
std::vector<Elf64_Half> Dyninst::SymtabAPI::emitElf64::versionSymTable [private] |
Definition at line 94 of file emitElf-64.h.
Referenced by createElfSymbol(), and createSymbolTables().
1.6.1