summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2012-01-16 19:01:27 -0800
committerSteve Reinhardt <steve.reinhardt@amd.com>2012-01-16 19:01:27 -0800
commit7a3a37307a00b3111cf24769a857126c4c4f5bc4 (patch)
treec17c9079cae9bb2f74c8329f3e28ede750b2cabd
parent1585cfb5b5df37f92c0ed053f951019966a6a05a (diff)
downloadgem5-7a3a37307a00b3111cf24769a857126c4c4f5bc4.tar.xz
Alpha: warn_once about broken PAL breakpoints.
A recent changeset (aae12ce9f34c) removed support for PAL-mode breakpoints in Alpha, since it was awkward and likely unused. This patch lets a user know if they potentially run into this limitation.
-rw-r--r--src/arch/alpha/remote_gdb.cc8
-rw-r--r--src/arch/alpha/remote_gdb.hh2
-rw-r--r--src/base/remote_gdb.hh2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/arch/alpha/remote_gdb.cc b/src/arch/alpha/remote_gdb.cc
index 88d453754..06fca92a3 100644
--- a/src/arch/alpha/remote_gdb.cc
+++ b/src/arch/alpha/remote_gdb.cc
@@ -314,3 +314,11 @@ RemoteGDB::write(Addr vaddr, size_t size, const char *data)
}
}
+
+bool
+RemoteGDB::insertHardBreak(Addr addr, size_t len)
+{
+ warn_once("Breakpoints do not work in Alpha PAL mode.\n"
+ " See PCEventQueue::doService() in cpu/pc_event.cc.\n");
+ return BaseRemoteGDB::insertHardBreak(addr, len);
+}
diff --git a/src/arch/alpha/remote_gdb.hh b/src/arch/alpha/remote_gdb.hh
index b7aef5f64..7223fea55 100644
--- a/src/arch/alpha/remote_gdb.hh
+++ b/src/arch/alpha/remote_gdb.hh
@@ -63,6 +63,8 @@ class RemoteGDB : public BaseRemoteGDB
bool acc(Addr addr, size_t len);
bool write(Addr addr, size_t size, const char *data);
+ virtual bool insertHardBreak(Addr addr, size_t len);
+
public:
RemoteGDB(System *system, ThreadContext *context);
};
diff --git a/src/base/remote_gdb.hh b/src/base/remote_gdb.hh
index 7c1228e59..899c7c29e 100644
--- a/src/base/remote_gdb.hh
+++ b/src/base/remote_gdb.hh
@@ -216,7 +216,7 @@ class BaseRemoteGDB
bool insertSoftBreak(Addr addr, size_t len);
bool removeSoftBreak(Addr addr, size_t len);
- bool insertHardBreak(Addr addr, size_t len);
+ virtual bool insertHardBreak(Addr addr, size_t len);
bool removeHardBreak(Addr addr, size_t len);
protected: