51 if (!symtab->findAddress(name, addr))
52 panic(
"thread info not compiled into kernel\n");
70 if (base ==
ULL(0xfffffc0000000000))
197 for (
int i = 0, size =
stack.size();
i < size; ++
i) {
206 symtab->findSymbol(addr, symbol);
208 DPRINTFN(
"%#x: %s\n", addr, symbol);
#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()
ProcessInfo(ThreadContext *_tc)
Addr task(Addr ksp) const
const ByteOrder GuestByteOrder
virtual PortProxy & getVirtProxy()=0
T read(Addr address) const
Read sizeof(T) bytes from address and return as object T.
virtual BaseCPU * getCpuPtr()=0
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)
const int ReturnAddressReg
bool decodeStack(MachInst inst, int &disp)
PortProxy Object Declaration.
std::string name(Addr ksp) const
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
bool decodeSave(MachInst inst, int ®, int &disp)
This object is a proxy for a port or other object which implements the functional response protocol...
void trace(ThreadContext *tc, bool is_call)
void readString(std::string &str, Addr addr) const
Same as tryReadString, but insists on success.
virtual const std::string name() const
This is exposed globally, independent of the ISA.
void dump()
Dump all statistics data to the registered outputs.
static int32_t readSymbol(ThreadContext *tc, const std::string name)
std::vector< Addr > stack