gem5
|
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, TheISA::PCState pc, const StaticInstPtr mi=NULL) | |
void | dump () override |
called by the cpu when the instruction commits. More... | |
Public Member Functions inherited from Trace::InstRecord | |
InstRecord (Tick _when, ThreadContext *_thread, const StaticInstPtr _staticInst, TheISA::PCState _pc, const StaticInstPtr _macroStaticInst=NULL) | |
virtual | ~InstRecord () |
void | setWhen (Tick new_when) |
void | setMem (Addr a, Addr s, unsigned f) |
void | setData (Twin64_t d) |
void | setData (Twin32_t 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 | setFetchSeq (InstSeqNum seq) |
void | setCPSeq (InstSeqNum seq) |
void | setPredicate (bool val) |
Tick | getWhen () const |
ThreadContext * | getThread () const |
StaticInstPtr | getStaticInst () const |
TheISA::PCState | 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 |
Protected Attributes | |
InstPBTrace & | tracer |
Protected Attributes inherited from Trace::InstRecord | |
Tick | when |
ThreadContext * | thread |
StaticInstPtr | staticInst |
TheISA::PCState | pc |
StaticInstPtr | macroStaticInst |
Addr | addr |
The address that was accessed. More... | |
Addr | size |
The size of the memory request. More... | |
unsigned | flags |
The flags that were assigned to the request. More... | |
union { | |
uint64_t as_int | |
double as_double | |
} | data |
InstSeqNum | fetch_seq |
InstSeqNum | cp_seq |
enum Trace::InstRecord:: { ... } | data_status |
What size of data was written? More... | |
bool | mem_valid |
Are the memory fields in the record valid? More... | |
bool | fetch_seq_valid |
Are the fetch sequence number fields valid? More... | |
bool | cp_seq_valid |
Are the commit sequence number fields valid? More... | |
bool | predicate |
is the predicate for execution this inst true or false (not execed)? More... | |
Additional Inherited Members | |
Protected Types inherited from Trace::InstRecord | |
enum | { DataInvalid = 0, DataInt8 = 1, DataInt16 = 2, DataInt32 = 4, DataInt64 = 8, DataDouble = 3 } |
What size of data was written? More... | |
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 65 of file inst_pb_trace.hh.
|
inline |
Definition at line 68 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 Trace::InstRecord.
Definition at line 57 of file inst_pb_trace.cc.
References Trace::InstRecord::getAddr(), Trace::InstRecord::getFlags(), Trace::InstRecord::getMemValid(), Trace::InstRecord::getSize(), StaticInst::isFirstMicroop(), StaticInst::isMicroop(), Trace::InstRecord::macroStaticInst, Trace::InstRecord::pc, Trace::InstRecord::staticInst, Trace::InstRecord::thread, Trace::InstPBTrace::traceInst(), Trace::InstPBTrace::traceMem(), and tracer.
|
protected |
Definition at line 81 of file inst_pb_trace.hh.
Referenced by dump().