|
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().