gem5  v20.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Protected Types | Private Member Functions | Private Attributes | List of all members
ArmISA::StackTrace Class Reference

#include <stacktrace.hh>

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

Protected Types

typedef ArmISA::MachInst MachInst
 

Private Member Functions

bool isEntry (Addr addr)
 
bool decodePrologue (Addr sp, Addr callpc, Addr func, int &size, Addr &ra)
 
bool decodeSave (MachInst inst, int &reg, int &disp)
 
bool decodeStack (MachInst inst, int &disp)
 
void trace (ThreadContext *tc, bool is_call)
 

Private Attributes

ThreadContexttc
 
std::vector< Addrstack
 

Detailed Description

Definition at line 61 of file stacktrace.hh.

Member Typedef Documentation

◆ MachInst

Definition at line 64 of file stacktrace.hh.

Constructor & Destructor Documentation

◆ StackTrace() [1/2]

ArmISA::StackTrace::StackTrace ( )

Definition at line 111 of file stacktrace.cc.

◆ StackTrace() [2/2]

ArmISA::StackTrace::StackTrace ( ThreadContext tc,
const StaticInstPtr inst 
)

Definition at line 116 of file stacktrace.cc.

References trace().

◆ ~StackTrace()

ArmISA::StackTrace::~StackTrace ( )

Definition at line 122 of file stacktrace.cc.

Member Function Documentation

◆ clear()

void ArmISA::StackTrace::clear ( )
inline

Definition at line 82 of file stacktrace.hh.

◆ decodePrologue()

bool ArmISA::StackTrace::decodePrologue ( Addr  sp,
Addr  callpc,
Addr  func,
int &  size,
Addr ra 
)
private

Definition at line 154 of file stacktrace.cc.

References DPRINTFN, and Stats::dump().

◆ decodeSave()

bool ArmISA::StackTrace::decodeSave ( MachInst  inst,
int &  reg,
int &  disp 
)
private

Definition at line 144 of file stacktrace.cc.

◆ decodeStack()

bool ArmISA::StackTrace::decodeStack ( MachInst  inst,
int &  disp 
)
private

Definition at line 138 of file stacktrace.cc.

◆ dprintf()

void ArmISA::StackTrace::dprintf ( )
inline

Definition at line 102 of file stacktrace.hh.

◆ getstack()

const std::vector<Addr>& ArmISA::StackTrace::getstack ( ) const
inline

Definition at line 92 of file stacktrace.hh.

References DTRACE, Stats::dump(), and X86ISA::stack.

◆ isEntry()

bool ArmISA::StackTrace::isEntry ( Addr  addr)
private

Definition at line 132 of file stacktrace.cc.

◆ trace() [1/2]

void ArmISA::StackTrace::trace ( ThreadContext tc,
bool  is_call 
)
private

Definition at line 127 of file stacktrace.cc.

Referenced by StackTrace().

◆ trace() [2/2]

bool ArmISA::StackTrace::trace ( ThreadContext tc,
const StaticInstPtr inst 
)
inline

Definition at line 107 of file stacktrace.hh.

References StaticInst::isCall(), and StaticInst::isReturn().

◆ valid()

bool ArmISA::StackTrace::valid ( ) const
inline

Definition at line 88 of file stacktrace.hh.

Member Data Documentation

◆ stack

std::vector<Addr> ArmISA::StackTrace::stack
private

Definition at line 67 of file stacktrace.hh.

◆ tc

ThreadContext* ArmISA::StackTrace::tc
private

Definition at line 66 of file stacktrace.hh.


The documentation for this class was generated from the following files:

Generated on Thu May 28 2020 16:21:56 for gem5 by doxygen 1.8.13