diff options
Diffstat (limited to 'libjava/gnu/gcj/jvmti/Breakpoint.java')
| -rw-r--r-- | libjava/gnu/gcj/jvmti/Breakpoint.java | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/libjava/gnu/gcj/jvmti/Breakpoint.java b/libjava/gnu/gcj/jvmti/Breakpoint.java index 2d8fe1b249a..00b325aec13 100644 --- a/libjava/gnu/gcj/jvmti/Breakpoint.java +++ b/libjava/gnu/gcj/jvmti/Breakpoint.java @@ -1,6 +1,6 @@ -// Breakpoint.java - a breakpoint in the interpreter +// Breakpoint.java - a base class for interpreter breakpoints -/* Copyright (C) 2006 Free Software Foundation +/* Copyright (C) 2006, 2007 Free Software Foundation This file is part of libgcj. @@ -13,37 +13,48 @@ package gnu.gcj.jvmti; import gnu.gcj.RawDataManaged; /** - * Class representing a Breakpoint. + * Base class representing a type of breakpoint in the interpreter. + * This class deals with saving insns and installing and + * uninstalling insns in the interpreter for all breakpoint classes. * * @author Keith Seitz (keiths@redhat.com) */ -public class Breakpoint +public abstract class Breakpoint { // Location of this breakpoint - private long method; - private long location; + protected long method; + protected long location; // The original instruction that this breakpoint replaced private RawDataManaged data; /** - * Constructs a new Breakpoint. SetBreakpoint will verify the - * validity of the arguments. + * Constructs a new Breakpoint * - * @param method the method (a jmethodID) - * @param location the jlocation of the breakpoint (a jlocation) + * @param method the method in which to set the breakpoint + * @param location the location at which to set the breakpoint */ public Breakpoint (long method, long location) { this.method = method; this.location = location; - initialize_native (); } - private native void initialize_native (); + public Breakpoint () + { + } + + private native void _save_insn (); + /** + * Installs the breakpoint into the interpreter + */ public native void install (); + /** + * Removes the breakpoint from the interpreter, re-installing + * the original instruction. + */ public native void remove (); /** @@ -54,4 +65,9 @@ public class Breakpoint { return data; } + + /** + * Execute the actions of this breakpoint + */ + public abstract void execute (); } |

