40 #ifndef __CPU_INST_PB_TRACE_HH__
41 #define __CPU_INST_PB_TRACE_HH__
43 #include "arch/types.hh"
47 #include "params/InstPBTrace.hh"
53 namespace ProtoMessage {
135 #endif // __CPU_INST_PB_TRACE_HH__
A ProtoOutputStream wraps a coded stream, potentially with compression, based on looking at the file ...
void closeStreams()
If there is a pending message still write it out and then close the file.
InstPBTraceRecord * getInstRecord(Tick when, ThreadContext *tc, const StaticInstPtr si, TheISA::PCState pc, const StaticInstPtr mi=NULL) override
This in an instruction tracer that records the flow of instructions through multiple cpus and systems...
ThreadContext is the external interface to all thread state for anything outside of the CPU...
static ProtoOutputStream * traceStream
One output stream for the entire simulation.
InstPBTrace(const InstPBTraceParams *p)
uint64_t Tick
Tick count type.
ProtoMessage::Inst * curMsg
This is the message were working on writing.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void traceInst(ThreadContext *tc, StaticInstPtr si, TheISA::PCState pc)
Write an instruction to the trace file.
GenericISA::SimplePCState< MachInst > PCState
InstPBTraceRecord(InstPBTrace &_tracer, Tick when, ThreadContext *tc, const StaticInstPtr si, TheISA::PCState pc, const StaticInstPtr mi=NULL)
void createTraceFile(std::string filename)
Create the output file and write the header into it.
void traceMem(StaticInstPtr si, Addr a, Addr s, unsigned f)
Write a memory request to the trace file as part of the cur instruction.
void dump() override
called by the cpu when the instruction commits.
Declaration of a wrapper for protobuf output streams and input streams.