summaryrefslogtreecommitdiff
path: root/libjava/gnu/classpath/jdwp/VMVirtualMachine.java
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2007-03-27 18:42:49 +0000
committerKeith Seitz <kseitz@gcc.gnu.org>2007-03-27 18:42:49 +0000
commitfd6a66a10afd7a3c29da6609a10d9f0ad9f8de52 (patch)
treeeb86eb4fedefc71e12376b94701ea3f9e9041fbd /libjava/gnu/classpath/jdwp/VMVirtualMachine.java
parentab065b4d759004950fca79cd18a9e186f74f8e0a (diff)
VMFrame.java: Update from upstream classpath.
* gnu/classpath/jdwp/VMFrame.java: Update from upstream classpath. * gnu/classpath/jdwp/natVMFrame.cc: Likewise. * gnu/classpath/jdwp/VMVirtualMachine.java: Likewise. * gnu/classpath/jdwp/natVMVirtualMachine.cc: Likewise. (initialize): Fix compiler type-punning warning. (getAllLoadedClasses): Return empty list instead of NULL. (getLoadRequests): Likewise. * gnu/classpath/jdwp/exception/InvalidTagException.h: New file. * gnu/classpath/jdwp/exception/InvalidSlotException.h: New file. * gnu/classpath/jdwp/exception/TypeMismatchException.h: New file. * gnu/classpath/jdwp/VMVirtualMachine.h: Rebuilt. * gnu/classpath/jdwp/value/CharValue.h: New file. * gnu/classpath/jdwp/value/LongValue.h: New file. * gnu/classpath/jdwp/value/ShortValue.h: New file. * gnu/classpath/jdwp/value/Value.h: New file. * gnu/classpath/jdwp/value/BooleanValue.h: New file. * gnu/classpath/jdwp/value/VoidValue.h: New file. * gnu/classpath/jdwp/value/ByteValue.h: New file. * gnu/classpath/jdwp/value/FloatValue.h: New file. * gnu/classpath/jdwp/value/ObjectValue.h: New file. * gnu/classpath/jdwp/value/StringValue.h: New file. * gnu/classpath/jdwp/value/ValueFactory.h: New file. * gnu/classpath/jdwp/value/IntValue.h: New file. * gnu/classpath/jdwp/value/DoubleValue.h: New file. * gnu/classpath/jdwp/VMFrame.h: Rebuilt. * gnu/classpath/jdwp/id/NullObjectId.h: New file. * gnu/classpath/jdwp/util/MethodResult.h: Rebuilt. * gnu/classpath/jdwp/util/NullObject.h: New file. * gnu/classpath/jdwp/util/MonitorInfo.h: New file. * Makefile.in: Rebuilt. * sources.am: Rebuilt. From-SVN: r123266
Diffstat (limited to 'libjava/gnu/classpath/jdwp/VMVirtualMachine.java')
-rw-r--r--libjava/gnu/classpath/jdwp/VMVirtualMachine.java113
1 files changed, 104 insertions, 9 deletions
diff --git a/libjava/gnu/classpath/jdwp/VMVirtualMachine.java b/libjava/gnu/classpath/jdwp/VMVirtualMachine.java
index da0fef28c10..a1249d1938e 100644
--- a/libjava/gnu/classpath/jdwp/VMVirtualMachine.java
+++ b/libjava/gnu/classpath/jdwp/VMVirtualMachine.java
@@ -45,11 +45,13 @@ import gnu.classpath.jdwp.event.EventRequest;
import gnu.classpath.jdwp.exception.InvalidMethodException;
import gnu.classpath.jdwp.exception.JdwpException;
import gnu.classpath.jdwp.util.MethodResult;
+import gnu.classpath.jdwp.util.MonitorInfo;
+
import java.lang.reflect.Method;
import java.nio.ByteBuffer;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Hashtable;
-import java.util.Iterator;
/**
* A virtual machine according to JDWP.
@@ -58,6 +60,23 @@ import java.util.Iterator;
*/
public class VMVirtualMachine
{
+ // VM Capabilities
+ public static final boolean canWatchFieldModification = false;
+ public static final boolean canWatchFieldAccess = false;
+ public static final boolean canGetBytecodes = false;
+ public static final boolean canGetSyntheticAttribute = false;
+ public static final boolean canGetOwnedMonitorInfo = false;
+ public static final boolean canGetCurrentContendedMonitor = false;
+ public static final boolean canGetMonitorInfo = false;
+ public static final boolean canRedefineClasses = false;
+ public static final boolean canAddMethod = false;
+ public static final boolean canUnrestrictedlyRedefineClasses = false;
+ public static final boolean canPopFrames = false;
+ public static final boolean canUseInstanceFilters = false;
+ public static final boolean canGetSourceDebugExtension = false;
+ public static final boolean canRequestVMDeathEvent = false;
+ public static final boolean canSetDefaultStratum = false;
+
// Thread suspension table. Maps Thread to suspend count (Integer)
private static Hashtable _jdwp_suspend_counts;
@@ -179,15 +198,9 @@ public class VMVirtualMachine
throws JdwpException;
/**
- * Returns a count of the number of loaded classes in the VM
- */
- public static native int getAllLoadedClassesCount ()
- throws JdwpException;
-
- /**
- * Returns an iterator over all the loaded classes in the VM
+ * Returns a Collection of all classes loaded in the VM
*/
- public static native Iterator getAllLoadedClasses ()
+ public static native Collection getAllLoadedClasses ()
throws JdwpException;
/**
@@ -335,4 +348,86 @@ public class VMVirtualMachine
*/
public static native void clearEvents (byte kind)
throws JdwpException;
+
+ /**
+ * Redefines the given types. VM must support canRedefineClasses
+ * capability (may also require canAddMethod and/or
+ * canUnrestrictedlyRedefineClasses capabilities)
+ *
+ * @param types the classes to redefine
+ * @param bytecodes the new bytecode definitions for the classes
+ */
+ public static native void redefineClasses(Class[] types, byte[][] bytecodes)
+ throws JdwpException;
+
+ /**
+ * Sets the default stratum. VM must support the
+ * canSetDefaultStratum capability.
+ *
+ * @param stratum the new default stratum or empty string to
+ * use the reference default
+ */
+ public static native void setDefaultStratum(String stratum)
+ throws JdwpException;
+
+ /**
+ * Returns the source debug extension. VM must support the
+ * canGetSourceDebugExtension capability.
+ *
+ * @param klass the class for which to return information
+ * @returns the source debug extension
+ */
+ public static native String getSourceDebugExtension(Class klass)
+ throws JdwpException;
+
+ /**
+ * Returns the bytecode for the given method. VM must support the
+ * canGetBytecodes capability.
+ *
+ * @param method the method for which to get bytecodes
+ * @returns the bytecodes
+ */
+ public static native byte[] getBytecodes(VMMethod method)
+ throws JdwpException;
+
+ /**
+ * Returns monitor information about an object. VM must support
+ * the canGetMonitorInformation capability.
+ *
+ * @param obj the object
+ * @returns monitor information (owner, entry count, waiters)
+ */
+ public static native MonitorInfo getMonitorInfo(Object obj)
+ throws JdwpException;
+
+ /**
+ * Returns a list of owned monitors. VM must support the
+ * canGetOwnedMonitorInfo capability.
+ *
+ * @param thread a thread
+ * @returns the list of monitors owned by this thread
+ */
+ public static native Object[] getOwnedMonitors(Thread thread)
+ throws JdwpException;
+
+ /**
+ * Returns the current contended monitor for a thread. VM must
+ * support canGetCurrentContendedMonitor capability.
+ *
+ * @param thread the thread
+ * @returns the contended monitor
+ */
+ public static native Object getCurrentContendedMonitor(Thread thread)
+ throws JdwpException;
+
+ /**
+ * Pop all frames up to and including the given frame. VM must
+ * support canPopFrames capability. It is the responsibility
+ * of the VM to check if the thread is suspended. If it is not,
+ * the VM should throw ThreadNotSuspendedException.
+ *
+ * @param thread the thread
+ * @param frame the frame ID
+ */
+ public static native void popFrames(Thread thread, long frameId);
}