50#include "debug/ExecAll.hh"
51#include "debug/FmtTicksOff.hh"
52#include "enums/OpClass.hh"
62 std::stringstream outs;
65 if (in_user_mode && !debug::ExecUser)
67 if (!in_user_mode && !debug::ExecKernel)
70 if (debug::ExecAsid) {
71 outs <<
"A" << std::dec <<
75 if (debug::ExecThread)
78 Addr cur_pc =
pc->instAddr();
81 if (debug::ExecSymbol && (!
FullSystem || !in_user_mode) &&
84 Addr delta = cur_pc - it->address();
86 ccprintf(outs,
" @%s+%d", it->name(), delta);
103 outs << std::setw(26) << std::left;
109 if (debug::ExecOpClass) {
110 outs << enums::OpClassStrings[inst->
opClass()] <<
" : ";
114 outs <<
"Predicated False";
130 outs <<
" A=0x" << std::hex <<
addr;
133 outs <<
" FetchSeq=" << std::dec <<
fetch_seq;
136 outs <<
" CPSeq=" << std::dec <<
cp_seq;
138 if (debug::ExecFlags) {
167 ((debug::ExecMicro &&
169 (!debug::ExecMicro &&
virtual bool inUserMode() const =0
virtual uint64_t getExecutingAsid() const
std::string asString() const
virtual std::string name() const
void printFlags(std::ostream &outs, const std::string &separator) const
Print a separator separated list of this instruction's set flag names on the given stream.
OpClass opClass() const
Operation class. Used to select appropriate function unit in issue.
bool isFirstMicroop() const
bool isLastMicroop() const
virtual BaseISA * getIsaPtr() const =0
virtual BaseCPU * getCpuPtr()=0
virtual int threadId() const =0
SymbolVector::const_iterator const_iterator
int64_t vectorLengthInBytes
void traceInst(const StaticInstPtr &inst, bool ran)
Addr addr
The address that was accessed.
StaticInstPtr macroStaticInst
std::unique_ptr< PCStateBase > pc
bool predicate
is the predicate for execution this inst true or false (not execed)?
union gem5::trace::InstRecord::Data data
std::string disassemble(StaticInstPtr inst, const PCStateBase &pc, const loader::SymbolTable *symtab=nullptr) const
void dprintf_flag(Tick when, const std::string &name, const std::string &flag, const char *fmt, const Args &...args)
Log a single message with a flag prefix.
bool cp_seq_valid
Are the commit sequence number fields valid?
enum gem5::trace::InstRecord::DataStatus dataStatus
bool fetch_seq_valid
Are the fetch sequence number fields valid?
SymbolTable debugSymbolTable
Global unified debugging symbol table (for target).
Logger * getDebugLogger()
Get the current global debug logger.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
void ccprintf(cp::Print &print)