51 if (!symtab->findAddress(name, addr))
52 panic(
"thread info not compiled into kernel\n");
70 if (base ==
ULL(0xffffffffc0000000))
#define panic(...)
This implements a cprintf based panic() function.
virtual System * getSystemPtr()=0
virtual const Loader::SymbolTable * symtab(ThreadContext *tc)=0
const std::string & name()
void trace(ThreadContext *tc, bool is_call)
bool decodeSave(MachInst inst, int ®, int &disp)
ArmISA::MachInst MachInst
virtual PortProxy & getVirtProxy()=0
T read(Addr address) const
Read sizeof(T) bytes from address and return as object T.
std::string name(Addr ksp) const
ThreadContext is the external interface to all thread state for anything outside of the CPU...
bool decodePrologue(Addr sp, Addr callpc, Addr func, int &size, Addr &ra)
ProcessInfo(ThreadContext *_tc)
PortProxy Object Declaration.
Workload * workload
OS kernel.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
#define ULL(N)
uint64_t constant
Addr task(Addr ksp) const
This object is a proxy for a port or other object which implements the functional response protocol...
void readString(std::string &str, Addr addr) const
Same as tryReadString, but insists on success.
std::vector< Addr > stack
bool decodeStack(MachInst inst, int &disp)
void dump()
Dump all statistics data to the registered outputs.
const ByteOrder GuestByteOrder
static int32_t readSymbol(ThreadContext *tc, const std::string name)