gem5
|
#include <stacktrace.hh>
Public Types | |
enum | { user = 1, console = 2, unknown = 3 } |
Public Member Functions | |
StackTrace () | |
StackTrace (ThreadContext *tc, const StaticInstPtr &inst) | |
~StackTrace () | |
void | clear () |
bool | valid () const |
bool | trace (ThreadContext *tc, const StaticInstPtr &inst) |
const std::vector< Addr > & | getstack () const |
void | dprintf () |
Private Member Functions | |
bool | isEntry (Addr addr) |
bool | decodePrologue (Addr sp, Addr callpc, Addr func, int &size, Addr &ra) |
bool | decodeSave (MachInst inst, int ®, int &disp) |
bool | decodeStack (MachInst inst, int &disp) |
void | trace (ThreadContext *tc, bool is_call) |
Private Attributes | |
ThreadContext * | tc |
std::vector< Addr > | stack |
Definition at line 63 of file stacktrace.hh.
anonymous enum |
Enumerator | |
---|---|
user | |
console | |
unknown |
Definition at line 95 of file stacktrace.hh.
AlphaISA::StackTrace::StackTrace | ( | ) |
Definition at line 121 of file stacktrace.cc.
AlphaISA::StackTrace::StackTrace | ( | ThreadContext * | tc, |
const StaticInstPtr & | inst | ||
) |
Definition at line 126 of file stacktrace.cc.
References trace().
AlphaISA::StackTrace::~StackTrace | ( | ) |
Definition at line 132 of file stacktrace.cc.
|
inline |
|
private |
Definition at line 307 of file stacktrace.cc.
References CopyOut(), decodeSave(), decodeStack(), pc, X86ISA::reg, AlphaISA::ReturnAddressReg, and tc.
Referenced by trace().
|
private |
Definition at line 278 of file stacktrace.cc.
Referenced by decodePrologue().
|
private |
Definition at line 237 of file stacktrace.cc.
Referenced by decodePrologue().
|
inline |
Definition at line 109 of file stacktrace.hh.
|
inline |
Definition at line 93 of file stacktrace.hh.
References stack.
|
private |
Definition at line 213 of file stacktrace.cc.
References AlphaISA::IPR_PALtemp11, AlphaISA::IPR_PALtemp12, AlphaISA::IPR_PALtemp2, AlphaISA::IPR_PALtemp21, AlphaISA::IPR_PALtemp7, AlphaISA::IPR_PALtemp9, ThreadContext::readMiscRegNoEffect(), and tc.
Referenced by trace().
|
private |
Definition at line 137 of file stacktrace.cc.
References addr, console, decodePrologue(), SymbolTable::findNearestAddr(), ThreadContext::getSystemPtr(), AlphaISA::IPR_DTB_CM, isEntry(), AlphaISA::Kernel::kernel, System::kernelEnd, System::kernelStart, System::kernelSymtab, panic, pc, ThreadContext::pcState(), PowerISA::ra, ThreadContext::readIntReg(), ThreadContext::readMiscRegNoEffect(), X86ISA::size(), stack, AlphaISA::StackPointerReg, tc, unknown, and user.
Referenced by StackTrace(), and trace().
|
inline |
Definition at line 114 of file stacktrace.hh.
References clear(), StaticInst::isCall(), StaticInst::isReturn(), trace(), and valid().
|
inline |
|
private |
Definition at line 67 of file stacktrace.hh.
Referenced by clear(), getstack(), and trace().
|
private |
Definition at line 66 of file stacktrace.hh.
Referenced by clear(), decodePrologue(), isEntry(), trace(), and valid().