std::vector<Loader::ObjectFile *> extras;
Loader::ObjectFile *kernelObj = nullptr;
- Loader::SymbolTable *kernelSymtab = nullptr;
+ // Keep a separate copy of the kernel's symbol table so we can add things
+ // to it.
+ Loader::SymbolTable kernelSymtab;
const std::string commandLine;
Addr loadAddrOffset() const { return _loadAddrOffset; }
KernelWorkload(const Params &p);
- ~KernelWorkload();
Addr getEntry() const override { return kernelObj->entryPoint(); }
Loader::Arch
return kernelObj->getArch();
}
- const Loader::SymbolTable *
+ const Loader::SymbolTable &
symtab(ThreadContext *tc) override
{
return kernelSymtab;
}
bool
- insertSymbol(Addr address, const std::string &symbol) override
+ insertSymbol(const Loader::Symbol &symbol) override
{
- return kernelSymtab->insert(address, symbol);
+ return kernelSymtab.insert(symbol);
}
void initState() override;