retdec
symbol_table.h
Go to the documentation of this file.
1 
7 #ifndef FILEINFO_FILE_INFORMATION_FILE_INFORMATION_TYPES_SYMBOL_TABLE_SYMBOL_TABLE_H
8 #define FILEINFO_FILE_INFORMATION_FILE_INFORMATION_TYPES_SYMBOL_TABLE_SYMBOL_TABLE_H
9 
12 
13 namespace retdec {
14 namespace fileinfo {
15 
26 {
27  private:
28  std::string name;
29  unsigned long long offset = std::numeric_limits<unsigned long long>::max();
30  unsigned long long declaredSymbols = std::numeric_limits<unsigned long long>::max();
31  std::vector<Symbol> table;
32  std::vector<SpecialInformation> extraInfo;
33  public:
36  std::size_t getNumberOfStoredSymbols() const;
37  std::string getNumberOfDeclaredSymbolsStr() const;
38  std::string getTableName() const;
39  std::string getTableOffsetStr(std::ios_base &(* format)(std::ios_base &)) const;
40  std::string getSymbolName(std::size_t position) const;
41  std::string getSymbolType(std::size_t position) const;
42  std::string getSymbolBind(std::size_t position) const;
43  std::string getSymbolOther(std::size_t position) const;
44  std::string getSymbolLinkToSection(std::size_t position) const;
45  std::string getSymbolIndexStr(std::size_t position) const;
46  std::string getSymbolValueStr(std::size_t position) const;
47  std::string getSymbolAddressStr(std::size_t position, std::ios_base &(* format)(std::ios_base &)) const;
48  std::string getSymbolSizeStr(std::size_t position) const;
49  std::size_t getNumberOfStoredSpecialInformation() const;
50  std::size_t getNumberOfSpecialInformationValues(std::size_t position) const;
51  std::string getSpecialInformationDescription(std::size_t position) const;
52  std::string getSpecialInformationAbbreviation(std::size_t position) const;
53  std::string getSpecialInformationValue(std::size_t infoIndex, std::size_t recordIndex) const;
55 
58  void setTableName(std::string tableName);
59  void setNumberOfDeclaredSymbols(unsigned long long symbols);
60  void setTableOffset(unsigned long long tableOffset);
62 
65  void addSymbol(Symbol &symbol);
66  void clearSymbols();
67  void addSpecialInformation(SpecialInformation &information);
70 };
71 
72 } // namespace fileinfo
73 } // namespace retdec
74 
75 #endif
Definition: special_information.h:22
Definition: symbol_table.h:26
unsigned long long declaredSymbols
declared number of symbols in table
Definition: symbol_table.h:30
void clearSpecialInformation()
Definition: symbol_table.cpp:253
std::size_t getNumberOfStoredSymbols() const
Definition: symbol_table.cpp:20
std::string getSymbolValueStr(std::size_t position) const
Definition: symbol_table.cpp:121
std::size_t getNumberOfStoredSpecialInformation() const
Definition: symbol_table.cpp:151
std::string getNumberOfDeclaredSymbolsStr() const
Definition: symbol_table.cpp:32
unsigned long long offset
offset of symbol table in file
Definition: symbol_table.h:29
std::string getSpecialInformationAbbreviation(std::size_t position) const
Definition: symbol_table.cpp:181
void addSpecialInformation(SpecialInformation &information)
Definition: symbol_table.cpp:245
std::vector< SpecialInformation > extraInfo
vector of special information (e.g. processor-specific information)
Definition: symbol_table.h:32
std::string getSymbolLinkToSection(std::size_t position) const
Definition: symbol_table.cpp:101
std::string getSymbolIndexStr(std::size_t position) const
Definition: symbol_table.cpp:111
std::string getSymbolAddressStr(std::size_t position, std::ios_base &(*format)(std::ios_base &)) const
Definition: symbol_table.cpp:132
void clearSymbols()
Definition: symbol_table.cpp:236
std::string getSymbolName(std::size_t position) const
Definition: symbol_table.cpp:61
void addSymbol(Symbol &symbol)
Definition: symbol_table.cpp:228
std::string getSymbolOther(std::size_t position) const
Definition: symbol_table.cpp:91
void setNumberOfDeclaredSymbols(unsigned long long symbols)
Definition: symbol_table.cpp:210
std::string getTableName() const
Definition: symbol_table.cpp:41
std::string getSpecialInformationDescription(std::size_t position) const
Definition: symbol_table.cpp:171
std::string getSpecialInformationValue(std::size_t infoIndex, std::size_t recordIndex) const
Definition: symbol_table.cpp:192
void setTableOffset(unsigned long long tableOffset)
Definition: symbol_table.cpp:219
std::string getSymbolType(std::size_t position) const
Definition: symbol_table.cpp:71
std::string getTableOffsetStr(std::ios_base &(*format)(std::ios_base &)) const
Definition: symbol_table.cpp:51
std::size_t getNumberOfSpecialInformationValues(std::size_t position) const
Definition: symbol_table.cpp:161
std::vector< Symbol > table
vector of symbols in table
Definition: symbol_table.h:31
void setTableName(std::string tableName)
Definition: symbol_table.cpp:201
std::string getSymbolSizeStr(std::size_t position) const
Definition: symbol_table.cpp:142
std::string name
name of symbol table
Definition: symbol_table.h:28
std::string getSymbolBind(std::size_t position) const
Definition: symbol_table.cpp:81
Definition: symbol.h:22
Definition: archive_wrapper.h:19
Definition of SpecialInformation class.
Class for one symol.