The branch, master has been updated
via 00345416a6028de2e659b7a01d3b1c54adca694f (commit)
from 9c6237cfe7385cb4d444a00c92de1a7668cae0ed (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 00345416a6028de2e659b7a01d3b1c54adca694f
Author: Phil Muldoon <pmuldoon@redhat.com>
Date: Wed Mar 26 13:03:25 2008 +0000
2008-03-26 Phil Muldoon <pmuldoon@redhat.com>
* Isa.java (setWatchpoint): New Interface
(deleteWatchpoint): Ditto.
(getWatchpointCount): Ditto.
* LinuxX8664.java: Add above interfaces.
* LinuxIA32.java: Ditto.
* IsaPowerPC.java: Ditto.
-----------------------------------------------------------------------
Summary of changes:
frysk-core/frysk/proc/live/ChangeLog | 9 ++++++
frysk-core/frysk/proc/live/Isa.java | 28 ++++++++++++++++++++
frysk-core/frysk/proc/live/IsaPowerPC.java | 37 ++++++++++++++++++++++++++
frysk-core/frysk/proc/live/LinuxIA32.java | 39 +++++++++++++++++++++++++++-
frysk-core/frysk/proc/live/LinuxX8664.java | 35 +++++++++++++++++++++++++
5 files changed, 147 insertions(+), 1 deletions(-)
First 500 lines of diff:
diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog
index c269998..0175fca 100644
--- a/frysk-core/frysk/proc/live/ChangeLog
+++ b/frysk-core/frysk/proc/live/ChangeLog
@@ -1,3 +1,12 @@
+2008-03-26 Phil Muldoon <pmuldoon@redhat.com>
+
+ * Isa.java (setWatchpoint): New Interface
+ (deleteWatchpoint): Ditto.
+ (getWatchpointCount): Ditto.
+ * LinuxX8664.java: Add above interfaces.
+ * LinuxIA32.java: Ditto.
+ * IsaPowerPC.java: Ditto.
+
2008-03-18 Andrew Cagney <cagney@redhat.com>
* LinuxPtraceHost.java (removeProc(LinuxPtraceProc)): Replace
diff --git a/frysk-core/frysk/proc/live/Isa.java b/frysk-core/frysk/proc/live/Isa.java
index 41bb1c0..3ea7fba 100644
--- a/frysk-core/frysk/proc/live/Isa.java
+++ b/frysk-core/frysk/proc/live/Isa.java
@@ -51,6 +51,34 @@ import inua.eio.ByteBuffer;
public interface Isa {
+
+ /**
+ * Builds a watchpoint. Takes a task, an address, a
+ * range and a register index.
+ *
+ * @return boolean whether the watchpoint
+ * was set succesfully.
+ */
+ boolean setWatchpoint(Task task, long addr,
+ long range, int index);
+
+ /**
+ * Deletes a watchpoint. Takes a task, and a
+ * register index.
+ *
+ * @return boolean whether the watchpoint
+ * was deleted succesfully.
+ */
+ boolean deleteWatchpoint(Task task, int index);
+
+
+ /**
+ * Returns number of watchpoints for this architecture
+ *
+ * @return int number of usable watchpoints.
+ */
+ int getWatchpointCount();
+
/**
* Get the breakpoint instruction.
*
diff --git a/frysk-core/frysk/proc/live/IsaPowerPC.java b/frysk-core/frysk/proc/live/IsaPowerPC.java
index a69ca46..39120cf 100644
--- a/frysk-core/frysk/proc/live/IsaPowerPC.java
+++ b/frysk-core/frysk/proc/live/IsaPowerPC.java
@@ -58,6 +58,43 @@ abstract class IsaPowerPC implements Isa {
new Instruction(new byte[] { (byte)0x7d, (byte)0x82,
(byte)0x10, (byte)0x08 }, false);
+
+ // Architecture Watchpoint Count
+ private final int NoOfWatchpoints = 1;
+
+ /**
+ * Builds a watchpoint. Takes a task, an address a
+ * range and a register index.
+ *
+ * @return boolean whether the watchpoint
+ * was set succesfully.
+ */
+ public final boolean setWatchpoint(Task task, long addr,
+ long range, int index) {
+ throw new RuntimeException("Watchpoints not supported on this arch");
+ }
+
+ /**
+ * Deletes a watchpoint. Takes a task and a
+ * range.
+ *
+ * @return boolean whether the watchpoint
+ * was deleted succesfully.
+ */
+ public final boolean deleteWatchpoint(Task task, int index) {
+ throw new RuntimeException("Watchpoints not supported on this arch");
+ }
+
+ /**
+ * Returns number of watchpoints for this architecture
+ *
+ * @return int number of usable watchpoints.
+ */
+ public final int getWatchpointCount() {
+ return NoOfWatchpoints;
+ }
+
+
/**
* Get the breakpoint instruction of the PowerPC platform.
*/
diff --git a/frysk-core/frysk/proc/live/LinuxIA32.java b/frysk-core/frysk/proc/live/LinuxIA32.java
index fe11aa5..184a5d9 100644
--- a/frysk-core/frysk/proc/live/LinuxIA32.java
+++ b/frysk-core/frysk/proc/live/LinuxIA32.java
@@ -51,7 +51,41 @@ class LinuxIA32 implements Isa {
private static final Instruction IA32Breakpoint
= new Instruction(new byte[] { (byte)0xcc }, false);
-
+
+ // Architecture Watchpoint Count
+ private final int NoOfWatchpoints = 7;
+
+ /**
+ * Builds a watchpoint. Takes a task, an address, a
+ * range and a register index.
+ *
+ * @return boolean whether the watchpoint
+ * was set succesfully.
+ */
+ public final boolean setWatchpoint(Task task, long addr,
+ long range, int index) {
+ throw new RuntimeException("Watchpoints not supported on this arch");
+ }
+
+ /**
+ * Deletes a watchpoint. Takes a task, and a range.
+ *
+ * @return boolean whether the watchpoint
+ * was deleted succesfully.
+ */
+ public final boolean deleteWatchpoint(Task task, int index) {
+ throw new RuntimeException("Watchpoints not supported on this arch");
+ }
+
+ /**
+ * Returns number of watchpoints for this architecture
+ *
+ * @return int number of usable watchpoints.
+ */
+ public final int getWatchpointCount() {
+ return NoOfWatchpoints;
+ }
+
/**
* Get the breakpoint instruction for IA32.
*/
@@ -154,10 +188,13 @@ class LinuxIA32 implements Isa {
return result;
}
+
private static LinuxIA32 isa;
static LinuxIA32 isaSingleton () {
if (isa == null)
isa = new LinuxIA32 ();
return isa;
}
+
+
}
diff --git a/frysk-core/frysk/proc/live/LinuxX8664.java b/frysk-core/frysk/proc/live/LinuxX8664.java
index 8ee4876..3dd3dfc 100644
--- a/frysk-core/frysk/proc/live/LinuxX8664.java
+++ b/frysk-core/frysk/proc/live/LinuxX8664.java
@@ -50,6 +50,41 @@ import frysk.proc.Auxv;
class LinuxX8664 implements Isa {
private static final Instruction X8664Breakpoint
= new Instruction(new byte[] { (byte)0xcc }, false);
+
+
+ // Architecture Watchpoint Count
+ private final int NoOfWatchpoints = 7;
+
+ /**
+ * Builds a watchpoint. Takes a task, an address, a
+ * range and a register index.
+ *
+ * @return boolean whether the watchpoint
+ * was set succesfully.
+ */
+ public final boolean setWatchpoint(Task task, long addr,
+ long range, int index) {
+ throw new RuntimeException("Watchpoints not supported on this arch");
+ }
+
+ /**
+ * Deletes a watchpoint. Takes a task, and a range.
+ *
+ * @return boolean whether the watchpoint
+ * was deleted succesfully.
+ */
+ public final boolean deleteWatchpoint(Task task, int index) {
+ throw new RuntimeException("Watchpoints not supported on this arch");
+ }
+
+ /**
+ * Returns number of watchpoints for this architecture
+ *
+ * @return int number of usable watchpoints.
+ */
+ public final int getWatchpointCount() {
+ return NoOfWatchpoints;
+ }
/**
* Get the breakpoint instruction for X8664.
hooks/post-receive
--
frysk system monitor/debugger