Lines Matching defs:symbolTable

25 bool ElfSymbolInfo::GetSymbolTable(const std::string &fileName, ElfSymbolTable &symbolTable)
31 symbolTable.textVaddr_ = (std::numeric_limits<uint64_t>::max)();
35 if (symbolTable.textVaddr_ != (std::min)(symbolTable.textVaddr_, phdr->vaddr_)) {
36 symbolTable.textVaddr_ = (std::min)(symbolTable.textVaddr_, phdr->vaddr_);
37 symbolTable.textOffset_ = phdr->offset_;
41 CHECK_TRUE(symbolTable.textVaddr_ != (std::numeric_limits<uint64_t>::max)(), false, "get text vaddr failed");
49 symbolTable.symTable_.resize(shdr->secSize_);
50 std::copy(data, data + shdr->secSize_, symbolTable.symTable_.data());
51 symbolTable.symEntSize_ = shdr->secEntrySize_;
59 symbolTable.strTable_.resize(strshdr->secSize_);
60 std::copy(data, data + strshdr->secSize_, symbolTable.strTable_.data());
68 symbolTable.symTable_.resize(shdr->secSize_);
69 std::copy(data, data + shdr->secSize_, symbolTable.symTable_.data());
70 symbolTable.symEntSize_ = shdr->secEntrySize_;
78 symbolTable.strTable_.resize(strshdr->secSize_);
79 std::copy(data, data + strshdr->secSize_, symbolTable.strTable_.data());
81 CHECK_TRUE(symbolTable.strTable_.size() != 0 && symbolTable.symTable_.size() != 0, false,
83 symbolTable.fileName_ = fileName;
88 uint32_t ElfSymbolInfo::GetBinary(const ElfSymbolTable &symbolTable, std::vector<uint8_t> &buf)
91 uint32_t fixLen = sizeof(symbolTable.textVaddr_) + sizeof(symbolTable.textOffset_) +
93 uint32_t len = fixLen + symbolTable.strTable_.size() + symbolTable.symTable_.size() +
94 symbolTable.fileName_.size() + 1;
97 const uint8_t *rp = reinterpret_cast<const uint8_t *>(&symbolTable);
99 std::copy(rp, rp + sizeof(symbolTable.textVaddr_) + sizeof(symbolTable.textOffset_), wp);
100 wp += sizeof(symbolTable.textVaddr_) + sizeof(symbolTable.textOffset_);
101 *(reinterpret_cast<uint32_t *>(wp)) = symbolTable.strTable_.size(); // strTabLen
103 *(reinterpret_cast<uint32_t *>(wp)) = symbolTable.symTable_.size(); // symTabLen
105 *(reinterpret_cast<uint32_t *>(wp)) = symbolTable.fileName_.size() + 1; // fileNameLen
107 *(reinterpret_cast<uint32_t *>(wp)) = symbolTable.symEntSize_; // symEntLen
109 std::copy(symbolTable.strTable_.data(),
110 symbolTable.strTable_.data() + symbolTable.strTable_.size(), wp);
111 wp += symbolTable.strTable_.size();
112 std::copy(symbolTable.symTable_.data(),
113 symbolTable.symTable_.data() + symbolTable.symTable_.size(), wp);
114 wp += symbolTable.symTable_.size();
115 std::copy(symbolTable.fileName_.c_str(),
116 symbolTable.fileName_.c_str() + symbolTable.fileName_.size() + 1, wp); // fileName