51,54d50
< private:
< friend void debugger();
< friend class GDBListener;
<
56,69d51
< class Event : public PollEvent
< {
< protected:
< RemoteGDB *gdb;
<
< public:
< Event(RemoteGDB *g, int fd, int e);
< void process(int revent);
< };
<
< friend class Event;
< Event *event;
<
< protected:
75d56
< ~RemoteGDB();
86,87d66
< PCEventQueue *getPcEventQueue();
<
89,92d67
< class HardBreakpoint : public PCEvent
< {
< private:
< RemoteGDB *gdb;
94,126c69,70
< public:
< int refcount;
<
< public:
< HardBreakpoint(RemoteGDB *_gdb, Addr addr);
< std::string name() { return gdb->name() + ".hwbkpt"; }
<
< virtual void process(ThreadContext *tc);
< };
< friend class HardBreakpoint;
<
< typedef std::map<Addr, HardBreakpoint *> break_map_t;
< typedef break_map_t::iterator break_iter_t;
< break_map_t hardBreakMap;
<
< bool insertSoftBreak(Addr addr, size_t len);
< bool removeSoftBreak(Addr addr, size_t len);
< bool insertHardBreak(Addr addr, size_t len);
< bool removeHardBreak(Addr addr, size_t len);
<
< protected:
< struct TempBreakpoint {
< Addr address; // set here
< MachInst bkpt_inst; // saved instruction at bkpt
< int init_count; // number of times to skip bkpt
< int count; // current count
< };
<
< TempBreakpoint notTakenBkpt;
< TempBreakpoint takenBkpt;
<
< void clearTempBreakpoint(TempBreakpoint &bkpt);
< void setTempBreakpoint(TempBreakpoint &bkpt, Addr addr);
---
> Addr notTakenBkpt;
> Addr takenBkpt;