OpenASIP
2.0
|
#include <CallPathTracker.hh>
Classes | |
struct | ProcedureTransfer |
Public Types | |
typedef std::deque< ProcedureTransfer > | ProcedureTransferQueue |
Public Member Functions | |
CallPathTracker (SimulatorFrontend &subject, unsigned, int historyLength) | |
virtual | ~CallPathTracker () |
virtual void | addProcedureTransfer (ClockCycleCount cycle, InstructionAddress address, InstructionAddress sourceAddress, bool isEntry) |
const ProcedureTransferQueue & | transfers () const |
const ProcedureTransferQueue | backTrace () const |
![]() | |
ProcedureTransferTracker (SimulatorFrontend &subject, ExecutionTrace &traceDB) | |
ProcedureTransferTracker (SimulatorFrontend &subject) | |
virtual | ~ProcedureTransferTracker () |
virtual void | handleEvent () |
![]() | |
Listener () | |
virtual | ~Listener () |
virtual void | handleEvent (int event) |
Private Attributes | |
std::size_t | historyLength_ |
max number of last calls/returns to store More... | |
ProcedureTransferQueue | transfers_ |
the transfers are stored in a queue of which size is kept under historyLength_ More... | |
Tracks procedure transfers in the simulated program and stores them in memory for quick viewing during simulation/debugging.
There should be one instance of this tracker for each tracked core.
Definition at line 51 of file CallPathTracker.hh.
typedef std::deque<ProcedureTransfer> CallPathTracker::ProcedureTransferQueue |
Definition at line 60 of file CallPathTracker.hh.
|
inline |
Definition at line 62 of file CallPathTracker.hh.
|
inlinevirtual |
Definition at line 68 of file CallPathTracker.hh.
|
virtual |
This function is called to record a procedure transfer (call or return).
The default implementation stores the transfer to a TraceDB.
Reimplemented from ProcedureTransferTracker.
Definition at line 33 of file CallPathTracker.cc.
References CallPathTracker::ProcedureTransfer::address, CallPathTracker::ProcedureTransfer::cycle, historyLength_, CallPathTracker::ProcedureTransfer::isEntry, CallPathTracker::ProcedureTransfer::sourceAddress, and transfers_.
const CallPathTracker::ProcedureTransferQueue CallPathTracker::backTrace | ( | ) | const |
Returns the history in a "back trace form" with calls and returns not contributing to the current call path stripped out.
Definition at line 54 of file CallPathTracker.cc.
References CallPathTracker::ProcedureTransfer::isEntry, and transfers().
Referenced by BackTraceCommand::execute().
|
inline |
Definition at line 76 of file CallPathTracker.hh.
References transfers_.
Referenced by backTrace(), and BackTraceCommand::execute().
|
private |
max number of last calls/returns to store
Definition at line 82 of file CallPathTracker.hh.
Referenced by addProcedureTransfer().
|
private |
the transfers are stored in a queue of which size is kept under historyLength_
Definition at line 85 of file CallPathTracker.hh.
Referenced by addProcedureTransfer(), and transfers().