summaryrefslogtreecommitdiff
path: root/src/arch/alpha/remote_gdb.hh
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-11-07 05:39:40 -0500
committerGabe Black <gblack@eecs.umich.edu>2006-11-07 05:39:40 -0500
commit54e22bfe9591ef6e83613757dd43c4cce2255cef (patch)
treefe25f255a0cb4887b7cdf1cc40db270e8d66ef6c /src/arch/alpha/remote_gdb.hh
parentda24915181516740e94efc7de4d9e9263c663e0d (diff)
downloadgem5-54e22bfe9591ef6e83613757dd43c4cce2255cef.tar.xz
Broke remote_gdb into a base class and architecture specific derived classes.
--HG-- extra : convert_revision : 8c528fab56a95b8245ad0f2572d62bb556ce0dde
Diffstat (limited to 'src/arch/alpha/remote_gdb.hh')
-rw-r--r--src/arch/alpha/remote_gdb.hh60
1 files changed, 2 insertions, 58 deletions
diff --git a/src/arch/alpha/remote_gdb.hh b/src/arch/alpha/remote_gdb.hh
index 1dd4ada38..7bef183c3 100644
--- a/src/arch/alpha/remote_gdb.hh
+++ b/src/arch/alpha/remote_gdb.hh
@@ -48,31 +48,12 @@ namespace AlphaISA
{
class RemoteGDB : public BaseRemoteGDB
{
- private:
- friend void debugger();
- friend class GDBListener;
-
- protected:
- 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:
// Machine memory
bool write(Addr addr, size_t size, const char *data);
public:
RemoteGDB(System *system, ThreadContext *context);
- ~RemoteGDB();
bool acc(Addr addr, size_t len);
@@ -83,47 +64,10 @@ namespace AlphaISA
void clearSingleStep();
void setSingleStep();
- PCEventQueue *getPcEventQueue();
-
- protected:
- class HardBreakpoint : public PCEvent
- {
- private:
- RemoteGDB *gdb;
-
- 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;
};
}