42 #include "debug/PCEvent.hh"
58 range_t range = equal_range(event);
60 while (i != range.second &&
64 event->
pc(),
event->descr());
79 pc_map.push_back(event);
80 sort(pc_map.begin(), pc_map.end(),
MapCompare());
83 event->
pc(),
event->descr());
95 range_t range = equal_range(pc);
96 for (
iterator i = range.first;
i != range.second; ++
i) {
105 (*i)->
pc(), (*i)->descr());
128 return std::equal_range(pc_map.begin(), pc_map.end(),
pc,
MapCompare());
133 :
PCEvent(q, desc, addr), remove(del)
150 new BreakPCEvent(&sys->pcEventQueue,
"debug break", addr,
true);
bool doService(ThreadContext *tc)
virtual Addr instAddr()=0
map_t::const_iterator const_iterator
void sched_break_pc(Addr addr)
void sched_break_pc_sys(System *sys, Addr addr)
virtual void process(ThreadContext *tc)
virtual BaseCPU * getCpuPtr()=0
ThreadContext is the external interface to all thread state for anything outside of the CPU...
std::string descr() const
Tick curTick()
The current simulated tick.
virtual const std::string name() const
range_t equal_range(Addr pc)
PanicPCEvent(PCEventQueue *q, const std::string &desc, Addr pc)
bool schedule(PCEvent *event)
BreakPCEvent(PCEventQueue *q, const std::string &desc, Addr addr, bool del=false)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual void process(ThreadContext *tc)
bool remove(PCEvent *event)
void cprintf(const char *format, const Args &...args)
static std::vector< System * > systemList