45 typedef std::multimap<Addr, std::string>
ATable;
46 typedef std::map<std::string, Addr>
STable;
57 iter = addrTable.upper_bound(addr);
60 if (iter == addrTable.begin())
73 bool load(
const std::string &file);
86 ATable::const_iterator
i = addrTable.find(address);
87 if (i == addrTable.end())
99 STable::const_iterator
i = symbolTable.find(symbol);
100 if (i == symbolTable.end())
103 address = (*i).second;
117 Addr &nextaddr)
const 119 ATable::const_iterator
i;
135 ATable::const_iterator
i;
149 ATable::const_iterator
i;
162 ATable::const_iterator
i;
180 #endif // __SYMTAB_HH__ bool findAddress(const std::string &symbol, Addr &address) const
bool findSymbol(Addr address, std::string &symbol) const
const STable & getSymbolTable() const
bool findNearestSymbol(Addr addr, std::string &symbol, Addr &symaddr, Addr &nextaddr) const
Find the nearest symbol equal to or less than the supplied address (e.g., the label for the enclosing...
std::multimap< Addr, std::string > ATable
std::map< std::string, Addr > STable
SymbolTable(const std::string &file)
bool insert(Addr address, std::string symbol)
bool load(const std::string &file)
const ATable & getAddrTable() const
void unserialize(const std::string &base, CheckpointIn &cp)
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool findNearestAddr(Addr addr, Addr &symaddr) const
std::ostream CheckpointOut
bool findNearestAddr(Addr addr, Addr &symaddr, Addr &nextaddr) const
void serialize(const std::string &base, CheckpointOut &cp) const
bool findNearestSymbol(Addr addr, std::string &symbol, Addr &symaddr) const
Overload for findNearestSymbol() for callers who don't care about nextaddr.
SymbolTable * debugSymbolTable
Global unified debugging symbol table (for target).
bool upperBound(Addr addr, ATable::const_iterator &iter) const