37 #include "debug/PCEvent.hh" 53 range_t range = equal_range(event);
55 while (i != range.second && i != pcMap.end()) {
58 event->
pc(),
event->descr());
72 pcMap.push_back(event);
73 sort(pcMap.begin(), pcMap.end(),
MapCompare());
76 event->
pc(),
event->descr());
87 range_t range = equal_range(pc);
88 for (
iterator i = range.first;
i != range.second; ++
i) {
90 (*i)->
pc(), (*i)->descr());
113 return std::equal_range(pcMap.begin(), pcMap.end(),
pc,
MapCompare());
118 :
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)