50 auto it = symtab->
find(name);
51 panic_if(it == symtab->end(),
"Thread info not compiled into kernel.");
69 if (base ==
ULL(0xfffffc0000000000))
196 for (
int i = 0, size =
stack.size();
i < size; ++
i) {
205 else if ((it = symtab->find(addr)) != symtab->end())
208 DPRINTFN(
"%#x: %s\n", addr, symbol);
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
SymbolVector::const_iterator const_iterator
This is exposed globally, independent of the ISA.
const_iterator find(Addr address) const
void dump()
Dump all statistics data to the registered outputs.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
static int32_t readSymbol(ThreadContext *tc, const std::string name)
std::vector< Addr > stack