|
gem5
v22.0.0.2
|
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>
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 |
| ThreadContext * | getThread () const |
| StaticInstPtr | getStaticInst () const |
| const PCStateBase & | getPCState () 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 | |
| InstPBTrace & | tracer |
Protected Attributes inherited from gem5::Trace::InstRecord | |
| Tick | when |
| ThreadContext * | thread |
| StaticInstPtr | staticInst |
| std::unique_ptr< PCStateBase > | pc |
| 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 } |
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.
|
inline |
Definition at line 69 of file inst_pb_trace.hh.
|
overridevirtual |
called by the cpu when the instruction commits.
This implementation of dump calls InstPBTrace to output the contents to a protobuf file
Implements gem5::Trace::InstRecord.
Definition at line 59 of file inst_pb_trace.cc.
References gem5::Trace::InstRecord::getAddr(), gem5::Trace::InstRecord::getFlags(), gem5::Trace::InstRecord::getMemValid(), gem5::Trace::InstRecord::getSize(), gem5::StaticInst::isFirstMicroop(), gem5::StaticInst::isMicroop(), gem5::Trace::InstRecord::macroStaticInst, gem5::Trace::InstRecord::pc, gem5::Trace::InstRecord::staticInst, gem5::Trace::InstRecord::thread, gem5::Trace::InstPBTrace::traceInst(), gem5::Trace::InstPBTrace::traceMem(), and tracer.
|
protected |
Definition at line 82 of file inst_pb_trace.hh.
Referenced by dump().