60 if (!symbolTable.insert(make_pair(symbol, address)).second)
65 addrTable.insert(make_pair(address, symbol));
75 ifstream file(filename.c_str());
78 fatal(
"file error: Can't open symbol table file %s\n", filename);
81 getline(file, buffer);
86 if (idx == string::npos)
89 string address = buffer.substr(0, idx);
94 string symbol = buffer.substr(idx + 1);
103 if (!insert(addr, symbol))
115 paramOut(cp, base +
".size", addrTable.size());
118 ATable::const_iterator
p, end = addrTable.end();
119 for (p = addrTable.begin(); p != end; ++
p) {
131 paramIn(cp, base +
".size", size);
132 for (
int i = 0;
i <
size; ++
i) {
138 insert(addr, symbol);
SymbolTable * debugSymbolTable
Global unified debugging symbol table (for target).
bool load(const std::string &file)
std::string csprintf(const char *format, const Args &...args)
void serialize(const std::string &base, CheckpointOut &cp) const
void paramOut(CheckpointOut &cp, const string &name, ExtMachInst const &machInst)
bool insert(Addr address, std::string symbol)
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.
std::ostream CheckpointOut
void eat_white(std::string &s)
void paramIn(CheckpointIn &cp, const string &name, ExtMachInst &machInst)
void unserialize(const std::string &base, CheckpointIn &cp)
bool to_number(const std::string &value, Pixel &retval)