40 #include "debug/PCEvent.hh" 56 range_t range = equal_range(event);
58 while (i != range.second && i != pcMap.end()) {
61 event->
pc(),
event->descr());
75 pcMap.push_back(event);
76 sort(pcMap.begin(), pcMap.end(),
MapCompare());
79 event->
pc(),
event->descr());
90 range_t range = equal_range(pc);
91 for (
iterator i = range.first;
i != range.second; ++
i) {
93 (*i)->
pc(), (*i)->descr());
116 return std::equal_range(pcMap.begin(), pcMap.end(),
pc,
MapCompare());
121 :
PCEvent(s, desc, addr), remove(del)
#define panic(...)
This implements a cprintf based panic() function.
std::string descr() const
virtual void process(ThreadContext *tc)
virtual const std::string name() const
bool remove(PCEvent *event) override
Overload hash function for BasicBlockRange type.
Map::const_iterator const_iterator
ThreadContext is the external interface to all thread state for anything outside of the CPU...
Tick curTick()
The current simulated tick.
range_t equal_range(Addr pc)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool schedule(PCEvent *event) override
PanicPCEvent(PCEventScope *s, const std::string &desc, Addr pc)
virtual void process(ThreadContext *tc)
BreakPCEvent(PCEventScope *s, const std::string &desc, Addr addr, bool del=false)
bool doService(Addr pc, ThreadContext *tc)
void cprintf(const char *format, const Args &...args)