aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu
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
parentab065b4d759004950fca79cd18a9e186f74f8e0a (diff)
downloadgcc-fd6a66a10afd7a3c29da6609a10d9f0ad9f8de52.zip
gcc-fd6a66a10afd7a3c29da6609a10d9f0ad9f8de52.tar.gz
gcc-fd6a66a10afd7a3c29da6609a10d9f0ad9f8de52.tar.bz2
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')
-rw-r--r--libjava/gnu/classpath/jdwp/VMFrame.h8
-rw-r--r--libjava/gnu/classpath/jdwp/VMFrame.java5
-rw-r--r--libjava/gnu/classpath/jdwp/VMVirtualMachine.h27
-rw-r--r--libjava/gnu/classpath/jdwp/VMVirtualMachine.java113
-rw-r--r--libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h36
-rw-r--r--libjava/gnu/classpath/jdwp/exception/InvalidTagException.h35
-rw-r--r--libjava/gnu/classpath/jdwp/exception/TypeMismatchException.h36
-rw-r--r--libjava/gnu/classpath/jdwp/id/NullObjectId.h36
-rw-r--r--libjava/gnu/classpath/jdwp/natVMFrame.cc8
-rw-r--r--libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc76
-rw-r--r--libjava/gnu/classpath/jdwp/util/MethodResult.h3
-rw-r--r--libjava/gnu/classpath/jdwp/util/MonitorInfo.h41
-rw-r--r--libjava/gnu/classpath/jdwp/util/NullObject.h35
-rw-r--r--libjava/gnu/classpath/jdwp/value/BooleanValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/ByteValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/CharValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/DoubleValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/FloatValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/IntValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/LongValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/ObjectValue.h41
-rw-r--r--libjava/gnu/classpath/jdwp/value/ShortValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/StringValue.h42
-rw-r--r--libjava/gnu/classpath/jdwp/value/Value.h55
-rw-r--r--libjava/gnu/classpath/jdwp/value/ValueFactory.h50
-rw-r--r--libjava/gnu/classpath/jdwp/value/VoidValue.h39
26 files changed, 994 insertions, 28 deletions
diff --git a/libjava/gnu/classpath/jdwp/VMFrame.h b/libjava/gnu/classpath/jdwp/VMFrame.h
index 8bc7ac6..0108e7b 100644
--- a/libjava/gnu/classpath/jdwp/VMFrame.h
+++ b/libjava/gnu/classpath/jdwp/VMFrame.h
@@ -20,6 +20,10 @@ extern "Java"
{
class Location;
}
+ namespace value
+ {
+ class Value;
+ }
}
}
}
@@ -31,8 +35,8 @@ class gnu::classpath::jdwp::VMFrame : public ::java::lang::Object
public:
VMFrame(::java::lang::Thread *, jlong, ::gnu::classpath::jdwp::util::Location *);
virtual ::gnu::classpath::jdwp::util::Location * getLocation();
- virtual ::java::lang::Object * getValue(jint);
- virtual void setValue(jint, ::java::lang::Object *);
+ virtual ::gnu::classpath::jdwp::value::Value * getValue(jint, jbyte);
+ virtual void setValue(jint, ::gnu::classpath::jdwp::value::Value *);
virtual ::java::lang::Thread * getThread();
virtual ::java::lang::Object * getObject();
virtual jlong getId();
diff --git a/libjava/gnu/classpath/jdwp/VMFrame.java b/libjava/gnu/classpath/jdwp/VMFrame.java
index e0f093f..4b144af 100644
--- a/libjava/gnu/classpath/jdwp/VMFrame.java
+++ b/libjava/gnu/classpath/jdwp/VMFrame.java
@@ -40,6 +40,7 @@ exception statement from your version. */
package gnu.classpath.jdwp;
import gnu.classpath.jdwp.util.Location;
+import gnu.classpath.jdwp.value.Value;
/**
* Reference implementation of VM hooks for JDWP Frame access.
@@ -93,14 +94,14 @@ public class VMFrame
*
* @param slot the slot containing the variable
*/
- public native Object getValue(int slot);
+ public native Value getValue(int slot, byte sig);
/**
* Assigns the given variable to the given value.
* @param slot The slot which contains the variable
* @param value The value to assign the variable to
*/
- public native void setValue(int slot, Object value);
+ public native void setValue(int slot, Value value);
/**
* Get the thread this frame is in.
diff --git a/libjava/gnu/classpath/jdwp/VMVirtualMachine.h b/libjava/gnu/classpath/jdwp/VMVirtualMachine.h
index 421f46a..dd31694 100644
--- a/libjava/gnu/classpath/jdwp/VMVirtualMachine.h
+++ b/libjava/gnu/classpath/jdwp/VMVirtualMachine.h
@@ -27,6 +27,7 @@ extern "Java"
namespace util
{
class MethodResult;
+ class MonitorInfo;
}
}
}
@@ -44,8 +45,7 @@ public:
static void resumeThread(::java::lang::Thread *);
static void resumeAllThreads();
static jint getSuspendCount(::java::lang::Thread *);
- static jint getAllLoadedClassesCount();
- static ::java::util::Iterator * getAllLoadedClasses();
+ static ::java::util::Collection * getAllLoadedClasses();
static jint getClassStatus(::java::lang::Class *);
static JArray< ::gnu::classpath::jdwp::VMMethod * > * getAllClassMethods(::java::lang::Class *);
static ::gnu::classpath::jdwp::VMMethod * getClassMethod(::java::lang::Class *, jlong);
@@ -59,6 +59,29 @@ public:
static void registerEvent(::gnu::classpath::jdwp::event::EventRequest *);
static void unregisterEvent(::gnu::classpath::jdwp::event::EventRequest *);
static void clearEvents(jbyte);
+ static void redefineClasses(JArray< ::java::lang::Class * > *, JArray< JArray< jbyte > * > *);
+ static void setDefaultStratum(::java::lang::String *);
+ static ::java::lang::String * getSourceDebugExtension(::java::lang::Class *);
+ static JArray< jbyte > * getBytecodes(::gnu::classpath::jdwp::VMMethod *);
+ static ::gnu::classpath::jdwp::util::MonitorInfo * getMonitorInfo(::java::lang::Object *);
+ static JArray< ::java::lang::Object * > * getOwnedMonitors(::java::lang::Thread *);
+ static ::java::lang::Object * getCurrentContendedMonitor(::java::lang::Thread *);
+ static void popFrames(::java::lang::Thread *, jlong);
+ static const jboolean canWatchFieldModification = 0;
+ static const jboolean canWatchFieldAccess = 0;
+ static const jboolean canGetBytecodes = 0;
+ static const jboolean canGetSyntheticAttribute = 0;
+ static const jboolean canGetOwnedMonitorInfo = 0;
+ static const jboolean canGetCurrentContendedMonitor = 0;
+ static const jboolean canGetMonitorInfo = 0;
+ static const jboolean canRedefineClasses = 0;
+ static const jboolean canAddMethod = 0;
+ static const jboolean canUnrestrictedlyRedefineClasses = 0;
+ static const jboolean canPopFrames = 0;
+ static const jboolean canUseInstanceFilters = 0;
+ static const jboolean canGetSourceDebugExtension = 0;
+ static const jboolean canRequestVMDeathEvent = 0;
+ static const jboolean canSetDefaultStratum = 0;
private:
static ::java::util::Hashtable * _jdwp_suspend_counts;
public: // actually package-private
diff --git a/libjava/gnu/classpath/jdwp/VMVirtualMachine.java b/libjava/gnu/classpath/jdwp/VMVirtualMachine.java
index da0fef2..a1249d1 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);
}
diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h b/libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h
new file mode 100644
index 0000000..4582dac
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_exception_InvalidSlotException__
+#define __gnu_classpath_jdwp_exception_InvalidSlotException__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/exception/JdwpException.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace exception
+ {
+ class InvalidSlotException;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::exception::InvalidSlotException : public ::gnu::classpath::jdwp::exception::JdwpException
+{
+
+public:
+ InvalidSlotException(jint);
+ InvalidSlotException(::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_exception_InvalidSlotException__
diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidTagException.h b/libjava/gnu/classpath/jdwp/exception/InvalidTagException.h
new file mode 100644
index 0000000..f7f0f1e
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/exception/InvalidTagException.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_exception_InvalidTagException__
+#define __gnu_classpath_jdwp_exception_InvalidTagException__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/exception/JdwpException.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace exception
+ {
+ class InvalidTagException;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::exception::InvalidTagException : public ::gnu::classpath::jdwp::exception::JdwpException
+{
+
+public:
+ InvalidTagException(jbyte);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_exception_InvalidTagException__
diff --git a/libjava/gnu/classpath/jdwp/exception/TypeMismatchException.h b/libjava/gnu/classpath/jdwp/exception/TypeMismatchException.h
new file mode 100644
index 0000000..701bf6e
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/exception/TypeMismatchException.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_exception_TypeMismatchException__
+#define __gnu_classpath_jdwp_exception_TypeMismatchException__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/exception/JdwpException.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace exception
+ {
+ class TypeMismatchException;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::exception::TypeMismatchException : public ::gnu::classpath::jdwp::exception::JdwpException
+{
+
+public:
+ TypeMismatchException(jbyte);
+ TypeMismatchException(::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_exception_TypeMismatchException__
diff --git a/libjava/gnu/classpath/jdwp/id/NullObjectId.h b/libjava/gnu/classpath/jdwp/id/NullObjectId.h
new file mode 100644
index 0000000..6231783
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/id/NullObjectId.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_id_NullObjectId__
+#define __gnu_classpath_jdwp_id_NullObjectId__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/id/ObjectId.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace id
+ {
+ class NullObjectId;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::id::NullObjectId : public ::gnu::classpath::jdwp::id::ObjectId
+{
+
+public:
+ NullObjectId();
+ static ::java::lang::Class * typeClass;
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_id_NullObjectId__
diff --git a/libjava/gnu/classpath/jdwp/natVMFrame.cc b/libjava/gnu/classpath/jdwp/natVMFrame.cc
index 0c00852..894791c 100644
--- a/libjava/gnu/classpath/jdwp/natVMFrame.cc
+++ b/libjava/gnu/classpath/jdwp/natVMFrame.cc
@@ -12,17 +12,19 @@ details. */
#include <jvm.h>
#include <gnu/classpath/jdwp/VMFrame.h>
+#include <gnu/classpath/jdwp/value/Value.h>
using namespace java::lang;
-Object*
-gnu::classpath::jdwp::VMFrame::getValue (MAYBE_UNUSED jint slot)
+gnu::classpath::jdwp::value::Value *
+gnu::classpath::jdwp::VMFrame::getValue (MAYBE_UNUSED jint slot,
+ MAYBE_UNUSED jbyte tag)
{
return 0;
}
void
gnu::classpath::jdwp::VMFrame::setValue (MAYBE_UNUSED jint slot,
- MAYBE_UNUSED Object* value)
+ MAYBE_UNUSED gnu::classpath::jdwp::value::Value *value)
{
}
diff --git a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc
index 2229a45..73b21ee 100644
--- a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc
+++ b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc
@@ -111,7 +111,13 @@ gnu::classpath::jdwp::VMVirtualMachine::initialize ()
_stepping_threads = new ::java::util::Hashtable ();
JavaVM *vm = _Jv_GetJavaVM ();
- vm->GetEnv (reinterpret_cast<void **> (&_jdwp_jvmtiEnv), JVMTI_VERSION_1_0);
+ union
+ {
+ void *ptr;
+ jvmtiEnv *env;
+ } foo;
+ vm->GetEnv (&(foo.ptr), JVMTI_VERSION_1_0);
+ _jdwp_jvmtiEnv = foo.env;
// Wait for VM_INIT to do more initialization
jvmtiEventCallbacks callbacks;
@@ -439,16 +445,11 @@ gnu::classpath::jdwp::VMVirtualMachine::clearEvents (MAYBE_UNUSED jbyte kind)
{
}
-jint
-gnu::classpath::jdwp::VMVirtualMachine::getAllLoadedClassesCount (void)
-{
- return 0;
-}
-
-java::util::Iterator *
+java::util::Collection *
gnu::classpath::jdwp::VMVirtualMachine::getAllLoadedClasses (void)
{
- return NULL;
+ using namespace ::java::util;
+ return (Collection *) new ArrayList ();
}
jint
@@ -629,7 +630,7 @@ java::util::ArrayList *
gnu::classpath::jdwp::VMVirtualMachine::
getLoadRequests (MAYBE_UNUSED ClassLoader *cl)
{
- return NULL;
+ return new ::java::util::ArrayList ();
}
MethodResult *
@@ -649,6 +650,61 @@ getSourceFile (jclass clazz)
return _Jv_GetInterpClassSourceFile (clazz);
}
+void
+gnu::classpath::jdwp::VMVirtualMachine::
+redefineClasses (MAYBE_UNUSED JArray<jclass> *types,
+ MAYBE_UNUSED JArray<jbyteArray> *bytecodes)
+{
+}
+
+void
+gnu::classpath::jdwp::VMVirtualMachine::
+setDefaultStratum (MAYBE_UNUSED jstring stratum)
+{
+}
+
+jstring
+gnu::classpath::jdwp::VMVirtualMachine::
+getSourceDebugExtension (MAYBE_UNUSED jclass klass)
+{
+ return NULL;
+}
+
+jbyteArray
+gnu::classpath::jdwp::VMVirtualMachine::
+getBytecodes (MAYBE_UNUSED gnu::classpath::jdwp::VMMethod *method)
+{
+ return NULL;
+}
+
+gnu::classpath::jdwp::util::MonitorInfo *
+gnu::classpath::jdwp::VMVirtualMachine::
+getMonitorInfo (MAYBE_UNUSED jobject obj)
+{
+ return NULL;
+}
+
+jobjectArray
+gnu::classpath::jdwp::VMVirtualMachine::
+getOwnedMonitors (MAYBE_UNUSED ::java::lang::Thread *thread)
+{
+ return NULL;
+}
+
+jobject
+gnu::classpath::jdwp::VMVirtualMachine::
+getCurrentContendedMonitor (MAYBE_UNUSED ::java::lang::Thread *thread)
+{
+ return NULL;
+}
+
+void
+gnu::classpath::jdwp::VMVirtualMachine::
+popFrames (MAYBE_UNUSED ::java::lang::Thread *thread,
+ MAYBE_UNUSED jlong frameId)
+{
+}
+
// A simple caching function used while single-stepping
static jvmtiError
get_linetable (jvmtiEnv *env, jmethodID method, jint *count_ptr,
diff --git a/libjava/gnu/classpath/jdwp/util/MethodResult.h b/libjava/gnu/classpath/jdwp/util/MethodResult.h
index c83d2c1..3084467 100644
--- a/libjava/gnu/classpath/jdwp/util/MethodResult.h
+++ b/libjava/gnu/classpath/jdwp/util/MethodResult.h
@@ -33,9 +33,12 @@ public:
virtual void setReturnedValue(::java::lang::Object *);
virtual ::java::lang::Exception * getThrownException();
virtual void setThrownException(::java::lang::Exception *);
+ virtual ::java::lang::Class * getResultType();
+ virtual void setResultType(::java::lang::Class *);
private:
::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::Object)))) returnedValue;
::java::lang::Exception * thrownException;
+ ::java::lang::Class * resType;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/classpath/jdwp/util/MonitorInfo.h b/libjava/gnu/classpath/jdwp/util/MonitorInfo.h
new file mode 100644
index 0000000..8b7d65f
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/util/MonitorInfo.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_util_MonitorInfo__
+#define __gnu_classpath_jdwp_util_MonitorInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace util
+ {
+ class MonitorInfo;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::util::MonitorInfo : public ::java::lang::Object
+{
+
+public:
+ MonitorInfo();
+ virtual void write(::java::io::DataOutputStream *);
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) entryCount;
+ ::java::lang::Thread * owner;
+ JArray< ::java::lang::Thread * > * waiters;
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_util_MonitorInfo__
diff --git a/libjava/gnu/classpath/jdwp/util/NullObject.h b/libjava/gnu/classpath/jdwp/util/NullObject.h
new file mode 100644
index 0000000..c071e0a
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/util/NullObject.h
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_util_NullObject__
+#define __gnu_classpath_jdwp_util_NullObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace util
+ {
+ class NullObject;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::util::NullObject : public ::java::lang::Object
+{
+
+public:
+ NullObject();
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_util_NullObject__
diff --git a/libjava/gnu/classpath/jdwp/value/BooleanValue.h b/libjava/gnu/classpath/jdwp/value/BooleanValue.h
new file mode 100644
index 0000000..57fa16c
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/BooleanValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_BooleanValue__
+#define __gnu_classpath_jdwp_value_BooleanValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class BooleanValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::BooleanValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ BooleanValue(jboolean);
+ jboolean getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ jboolean __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_BooleanValue__
diff --git a/libjava/gnu/classpath/jdwp/value/ByteValue.h b/libjava/gnu/classpath/jdwp/value/ByteValue.h
new file mode 100644
index 0000000..6fa45ac
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/ByteValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_ByteValue__
+#define __gnu_classpath_jdwp_value_ByteValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class ByteValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::ByteValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ ByteValue(jbyte);
+ jbyte getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ jbyte __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_ByteValue__
diff --git a/libjava/gnu/classpath/jdwp/value/CharValue.h b/libjava/gnu/classpath/jdwp/value/CharValue.h
new file mode 100644
index 0000000..2f87f77
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/CharValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_CharValue__
+#define __gnu_classpath_jdwp_value_CharValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class CharValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::CharValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ CharValue(jchar);
+ jchar getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ jchar __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_CharValue__
diff --git a/libjava/gnu/classpath/jdwp/value/DoubleValue.h b/libjava/gnu/classpath/jdwp/value/DoubleValue.h
new file mode 100644
index 0000000..c68e683
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/DoubleValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_DoubleValue__
+#define __gnu_classpath_jdwp_value_DoubleValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class DoubleValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::DoubleValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ DoubleValue(jdouble);
+ jdouble getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ jdouble __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_DoubleValue__
diff --git a/libjava/gnu/classpath/jdwp/value/FloatValue.h b/libjava/gnu/classpath/jdwp/value/FloatValue.h
new file mode 100644
index 0000000..d8917b9
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/FloatValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_FloatValue__
+#define __gnu_classpath_jdwp_value_FloatValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class FloatValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::FloatValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ FloatValue(jfloat);
+ jfloat getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ jfloat __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_FloatValue__
diff --git a/libjava/gnu/classpath/jdwp/value/IntValue.h b/libjava/gnu/classpath/jdwp/value/IntValue.h
new file mode 100644
index 0000000..0d09aff
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/IntValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_IntValue__
+#define __gnu_classpath_jdwp_value_IntValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class IntValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::IntValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ IntValue(jint);
+ jint getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_IntValue__
diff --git a/libjava/gnu/classpath/jdwp/value/LongValue.h b/libjava/gnu/classpath/jdwp/value/LongValue.h
new file mode 100644
index 0000000..8416558
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/LongValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_LongValue__
+#define __gnu_classpath_jdwp_value_LongValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class LongValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::LongValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ LongValue(jlong);
+ jlong getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ jlong __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_LongValue__
diff --git a/libjava/gnu/classpath/jdwp/value/ObjectValue.h b/libjava/gnu/classpath/jdwp/value/ObjectValue.h
new file mode 100644
index 0000000..8282945
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/ObjectValue.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_ObjectValue__
+#define __gnu_classpath_jdwp_value_ObjectValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class ObjectValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::ObjectValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ ObjectValue(::java::lang::Object *);
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_ObjectValue__
diff --git a/libjava/gnu/classpath/jdwp/value/ShortValue.h b/libjava/gnu/classpath/jdwp/value/ShortValue.h
new file mode 100644
index 0000000..124d781
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/ShortValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_ShortValue__
+#define __gnu_classpath_jdwp_value_ShortValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class ShortValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::ShortValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ ShortValue(jshort);
+ jshort getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ jshort __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_ShortValue__
diff --git a/libjava/gnu/classpath/jdwp/value/StringValue.h b/libjava/gnu/classpath/jdwp/value/StringValue.h
new file mode 100644
index 0000000..dc8e52f
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/StringValue.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_StringValue__
+#define __gnu_classpath_jdwp_value_StringValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class StringValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::StringValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ StringValue(::java::lang::String *);
+ ::java::lang::String * getValue();
+public: // actually protected
+ ::java::lang::Object * getObject();
+ void write(::java::io::DataOutputStream *);
+public: // actually package-private
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::value::Value)))) _value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_StringValue__
diff --git a/libjava/gnu/classpath/jdwp/value/Value.h b/libjava/gnu/classpath/jdwp/value/Value.h
new file mode 100644
index 0000000..8ab3d54
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/Value.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_Value__
+#define __gnu_classpath_jdwp_value_Value__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class Value;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::Value : public ::java::lang::Object
+{
+
+public: // actually protected
+ Value(jbyte);
+public:
+ virtual jbyte getTag();
+ virtual void writeUntagged(::java::io::DataOutputStream *);
+ virtual void writeTagged(::java::io::DataOutputStream *);
+public: // actually protected
+ virtual void write(::java::io::DataOutputStream *) = 0;
+ virtual ::java::lang::Object * getObject() = 0;
+public:
+ static ::java::lang::Object * getUntaggedObject(::java::nio::ByteBuffer *, ::java::lang::Class *);
+ static ::java::lang::Object * getTaggedObject(::java::nio::ByteBuffer *);
+private:
+ jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) _tag;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_Value__
diff --git a/libjava/gnu/classpath/jdwp/value/ValueFactory.h b/libjava/gnu/classpath/jdwp/value/ValueFactory.h
new file mode 100644
index 0000000..316d5d0
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/ValueFactory.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_ValueFactory__
+#define __gnu_classpath_jdwp_value_ValueFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class Value;
+ class ValueFactory;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteBuffer;
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::ValueFactory : public ::java::lang::Object
+{
+
+public:
+ ValueFactory();
+ static ::gnu::classpath::jdwp::value::Value * createFromTagged(::java::nio::ByteBuffer *);
+ static ::gnu::classpath::jdwp::value::Value * createFromUntagged(::java::nio::ByteBuffer *, ::java::lang::Class *);
+private:
+ static ::gnu::classpath::jdwp::value::Value * create(::java::nio::ByteBuffer *, jbyte);
+ static jbyte getTagForClass(::java::lang::Class *);
+public:
+ static ::gnu::classpath::jdwp::value::Value * createFromObject(::java::lang::Object *, ::java::lang::Class *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_ValueFactory__
diff --git a/libjava/gnu/classpath/jdwp/value/VoidValue.h b/libjava/gnu/classpath/jdwp/value/VoidValue.h
new file mode 100644
index 0000000..48a7277
--- /dev/null
+++ b/libjava/gnu/classpath/jdwp/value/VoidValue.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_jdwp_value_VoidValue__
+#define __gnu_classpath_jdwp_value_VoidValue__
+
+#pragma interface
+
+#include <gnu/classpath/jdwp/value/Value.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ namespace jdwp
+ {
+ namespace value
+ {
+ class VoidValue;
+ }
+ }
+ }
+ }
+}
+
+class gnu::classpath::jdwp::value::VoidValue : public ::gnu::classpath::jdwp::value::Value
+{
+
+public:
+ VoidValue();
+public: // actually protected
+ virtual ::java::lang::Object * getObject();
+ virtual void write(::java::io::DataOutputStream *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_jdwp_value_VoidValue__