gem5  v22.0.0.1
Public Member Functions | Protected Attributes | List of all members
gem5::Trace::InstPBTraceRecord Class Reference

This in an instruction tracer that records the flow of instructions through multiple cpus and systems to a protobuf file specified by proto/inst.proto for further analysis. More...

#include <inst_pb_trace.hh>

Inheritance diagram for gem5::Trace::InstPBTraceRecord:
gem5::Trace::InstRecord

Public Member Functions

 InstPBTraceRecord (InstPBTrace &_tracer, Tick when, ThreadContext *tc, const StaticInstPtr si, const PCStateBase &pc, const StaticInstPtr mi=NULL)
 
void dump () override
 called by the cpu when the instruction commits. More...
 
- Public Member Functions inherited from gem5::Trace::InstRecord
 InstRecord (Tick _when, ThreadContext *_thread, const StaticInstPtr _staticInst, const PCStateBase &_pc, const StaticInstPtr _macroStaticInst=nullptr)
 
virtual ~InstRecord ()
 
void setWhen (Tick new_when)
 
void setMem (Addr a, Addr s, unsigned f)
 
template<typename T , size_t N>
void setData (std::array< T, N > d)
 
void setData (uint64_t d)
 
void setData (uint32_t d)
 
void setData (uint16_t d)
 
void setData (uint8_t d)
 
void setData (int64_t d)
 
void setData (int32_t d)
 
void setData (int16_t d)
 
void setData (int8_t d)
 
void setData (double d)
 
void setData (TheISA::VecRegContainer &d)
 
void setData (TheISA::VecPredRegContainer &d)
 
void setFetchSeq (InstSeqNum seq)
 
void setCPSeq (InstSeqNum seq)
 
void setPredicate (bool val)
 
void setFaulting (bool val)
 
Tick getWhen () const
 
ThreadContextgetThread () const
 
StaticInstPtr getStaticInst () const
 
const PCStateBasegetPCState () const
 
StaticInstPtr getMacroStaticInst () const
 
Addr getAddr () const
 
Addr getSize () const
 
unsigned getFlags () const
 
bool getMemValid () const
 
uint64_t getIntData () const
 
double getFloatData () const
 
int getDataStatus () const
 
InstSeqNum getFetchSeq () const
 
bool getFetchSeqValid () const
 
InstSeqNum getCpSeq () const
 
bool getCpSeqValid () const
 
bool getFaulting () const
 

Protected Attributes

InstPBTracetracer
 
- Protected Attributes inherited from gem5::Trace::InstRecord
Tick when
 
ThreadContextthread
 
StaticInstPtr staticInst
 
std::unique_ptr< PCStateBasepc
 
StaticInstPtr macroStaticInst
 
Addr addr = 0
 The address that was accessed. More...
 
Addr size = 0
 The size of the memory request. More...
 
unsigned flags = 0
 The flags that were assigned to the request. More...
 
union {
   uint64_t   as_int
 
   double   as_double
 
   TheISA::VecRegContainer *   as_vec
 
   TheISA::VecPredRegContainer *   as_pred
 
data = {0}
 
InstSeqNum fetch_seq = 0
 
InstSeqNum cp_seq = 0
 
enum gem5::Trace::InstRecord::DataStatus data_status = DataInvalid
 
bool mem_valid = false
 
bool fetch_seq_valid = false
 
bool cp_seq_valid = false
 
bool predicate = true
 is the predicate for execution this inst true or false (not execed)? More...
 
bool faulting = false
 Did the execution of this instruction fault? (requires ExecFaulting to be enabled) More...
 

Additional Inherited Members

- Protected Types inherited from gem5::Trace::InstRecord
enum  DataStatus {
  DataInvalid = 0, DataInt8 = 1, DataInt16 = 2, DataInt32 = 4,
  DataInt64 = 8, DataDouble = 3, DataVec = 5, DataVecPred = 6
}
 

Detailed Description

This in an instruction tracer that records the flow of instructions through multiple cpus and systems to a protobuf file specified by proto/inst.proto for further analysis.

Definition at line 66 of file inst_pb_trace.hh.

Constructor & Destructor Documentation

◆ InstPBTraceRecord()

gem5::Trace::InstPBTraceRecord::InstPBTraceRecord ( InstPBTrace _tracer,
Tick  when,
ThreadContext tc,
const StaticInstPtr  si,
const PCStateBase pc,
const StaticInstPtr  mi = NULL 
)
inline

Definition at line 69 of file inst_pb_trace.hh.

Member Function Documentation

◆ dump()

void gem5::Trace::InstPBTraceRecord::dump ( )
overridevirtual

Member Data Documentation

◆ tracer

InstPBTrace& gem5::Trace::InstPBTraceRecord::tracer
protected

Definition at line 82 of file inst_pb_trace.hh.

Referenced by dump().


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

Generated on Sat Jun 18 2022 08:14:39 for gem5 by doxygen 1.8.17