From c43fdf8258d98e077e4e0bed5545db5dc763c10e Mon Sep 17 00:00:00 2001 From: kseitz Date: Tue, 27 Mar 2007 18:42:49 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123266 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 35 +++++++ libjava/Makefile.in | 37 ++++++- libjava/gnu/classpath/jdwp/VMFrame.h | 8 +- libjava/gnu/classpath/jdwp/VMFrame.java | 5 +- libjava/gnu/classpath/jdwp/VMVirtualMachine.h | 27 ++++- libjava/gnu/classpath/jdwp/VMVirtualMachine.java | 113 +++++++++++++++++++-- .../jdwp/exception/InvalidSlotException.h | 36 +++++++ .../classpath/jdwp/exception/InvalidTagException.h | 35 +++++++ .../jdwp/exception/TypeMismatchException.h | 36 +++++++ libjava/gnu/classpath/jdwp/id/NullObjectId.h | 36 +++++++ libjava/gnu/classpath/jdwp/natVMFrame.cc | 8 +- libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc | 76 ++++++++++++-- libjava/gnu/classpath/jdwp/util/MethodResult.h | 3 + libjava/gnu/classpath/jdwp/util/MonitorInfo.h | 41 ++++++++ libjava/gnu/classpath/jdwp/util/NullObject.h | 35 +++++++ libjava/gnu/classpath/jdwp/value/BooleanValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/ByteValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/CharValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/DoubleValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/FloatValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/IntValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/LongValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/ObjectValue.h | 41 ++++++++ libjava/gnu/classpath/jdwp/value/ShortValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/StringValue.h | 42 ++++++++ libjava/gnu/classpath/jdwp/value/Value.h | 55 ++++++++++ libjava/gnu/classpath/jdwp/value/ValueFactory.h | 50 +++++++++ libjava/gnu/classpath/jdwp/value/VoidValue.h | 39 +++++++ libjava/sources.am | 32 ++++++ 29 files changed, 1095 insertions(+), 31 deletions(-) create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/InvalidTagException.h create mode 100644 libjava/gnu/classpath/jdwp/exception/TypeMismatchException.h create mode 100644 libjava/gnu/classpath/jdwp/id/NullObjectId.h create mode 100644 libjava/gnu/classpath/jdwp/util/MonitorInfo.h create mode 100644 libjava/gnu/classpath/jdwp/util/NullObject.h create mode 100644 libjava/gnu/classpath/jdwp/value/BooleanValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/ByteValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/CharValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/DoubleValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/FloatValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/IntValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/LongValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/ObjectValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/ShortValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/StringValue.h create mode 100644 libjava/gnu/classpath/jdwp/value/Value.h create mode 100644 libjava/gnu/classpath/jdwp/value/ValueFactory.h create mode 100644 libjava/gnu/classpath/jdwp/value/VoidValue.h diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 7af3c2887af..8c7e9465396 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,38 @@ +2007-03-27 Keith Seitz + + * 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. + 2006-03-26 David Daney * configure.ac: Remove checks for mktime, alloca, ioctl, gmtime_r, diff --git a/libjava/Makefile.in b/libjava/Makefile.in index 1dad7884cde..a7ed11b9c7a 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -159,9 +159,10 @@ am__DEPENDENCIES_1 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \ gnu/classpath/jdwp/exception.lo gnu/classpath/jdwp/id.lo \ gnu/classpath/jdwp/processor.lo \ gnu/classpath/jdwp/transport.lo gnu/classpath/jdwp/util.lo \ - gnu/gcj.lo gnu/gcj/convert.lo gnu/gcj/io.lo gnu/gcj/jvmti.lo \ - gnu/gcj/runtime.lo gnu/gcj/util.lo gnu/java/awt.lo \ - gnu/java/awt/color.lo gnu/java/awt/dnd.lo gnu/java/awt/font.lo \ + gnu/classpath/jdwp/value.lo gnu/gcj.lo gnu/gcj/convert.lo \ + gnu/gcj/io.lo gnu/gcj/jvmti.lo gnu/gcj/runtime.lo \ + gnu/gcj/util.lo gnu/java/awt.lo gnu/java/awt/color.lo \ + gnu/java/awt/dnd.lo gnu/java/awt/font.lo \ gnu/java/awt/font/autofit.lo gnu/java/awt/font/opentype.lo \ gnu/java/awt/font/opentype/truetype.lo gnu/java/awt/image.lo \ gnu/java/awt/java2d.lo gnu/java/awt/peer.lo \ @@ -1218,7 +1219,9 @@ classpath/gnu/classpath/jdwp/exception/InvalidFrameException.java \ classpath/gnu/classpath/jdwp/exception/InvalidLocationException.java \ classpath/gnu/classpath/jdwp/exception/InvalidMethodException.java \ classpath/gnu/classpath/jdwp/exception/InvalidObjectException.java \ +classpath/gnu/classpath/jdwp/exception/InvalidSlotException.java \ classpath/gnu/classpath/jdwp/exception/InvalidStringException.java \ +classpath/gnu/classpath/jdwp/exception/InvalidTagException.java \ classpath/gnu/classpath/jdwp/exception/InvalidThreadException.java \ classpath/gnu/classpath/jdwp/exception/InvalidThreadGroupException.java \ classpath/gnu/classpath/jdwp/exception/JdwpException.java \ @@ -1226,6 +1229,7 @@ classpath/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.java \ classpath/gnu/classpath/jdwp/exception/JdwpInternalErrorException.java \ classpath/gnu/classpath/jdwp/exception/NativeMethodException.java \ classpath/gnu/classpath/jdwp/exception/NotImplementedException.java \ +classpath/gnu/classpath/jdwp/exception/TypeMismatchException.java \ classpath/gnu/classpath/jdwp/exception/VmDeadException.java gnu_classpath_jdwp_exception_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_jdwp_exception_source_files))) @@ -1237,6 +1241,7 @@ classpath/gnu/classpath/jdwp/id/ClassObjectId.java \ classpath/gnu/classpath/jdwp/id/ClassReferenceTypeId.java \ classpath/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.java \ classpath/gnu/classpath/jdwp/id/JdwpId.java \ +classpath/gnu/classpath/jdwp/id/NullObjectId.java \ classpath/gnu/classpath/jdwp/id/ObjectId.java \ classpath/gnu/classpath/jdwp/id/ReferenceTypeId.java \ classpath/gnu/classpath/jdwp/id/StringId.java \ @@ -1281,11 +1286,29 @@ classpath/gnu/classpath/jdwp/util/JdwpString.java \ classpath/gnu/classpath/jdwp/util/LineTable.java \ classpath/gnu/classpath/jdwp/util/Location.java \ classpath/gnu/classpath/jdwp/util/MethodResult.java \ +classpath/gnu/classpath/jdwp/util/MonitorInfo.java \ +classpath/gnu/classpath/jdwp/util/NullObject.java \ classpath/gnu/classpath/jdwp/util/Signature.java \ classpath/gnu/classpath/jdwp/util/Value.java \ classpath/gnu/classpath/jdwp/util/VariableTable.java gnu_classpath_jdwp_util_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_jdwp_util_source_files))) +gnu_classpath_jdwp_value_source_files = \ +classpath/gnu/classpath/jdwp/value/BooleanValue.java \ +classpath/gnu/classpath/jdwp/value/ByteValue.java \ +classpath/gnu/classpath/jdwp/value/CharValue.java \ +classpath/gnu/classpath/jdwp/value/DoubleValue.java \ +classpath/gnu/classpath/jdwp/value/FloatValue.java \ +classpath/gnu/classpath/jdwp/value/IntValue.java \ +classpath/gnu/classpath/jdwp/value/LongValue.java \ +classpath/gnu/classpath/jdwp/value/ObjectValue.java \ +classpath/gnu/classpath/jdwp/value/ShortValue.java \ +classpath/gnu/classpath/jdwp/value/StringValue.java \ +classpath/gnu/classpath/jdwp/value/Value.java \ +classpath/gnu/classpath/jdwp/value/ValueFactory.java \ +classpath/gnu/classpath/jdwp/value/VoidValue.java + +gnu_classpath_jdwp_value_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_jdwp_value_source_files))) gnu_gcj_source_files = \ gnu/gcj/Core.java \ gnu/gcj/RawData.java \ @@ -7225,6 +7248,7 @@ all_packages_source_files = \ gnu/classpath/jdwp/processor.list \ gnu/classpath/jdwp/transport.list \ gnu/classpath/jdwp/util.list \ + gnu/classpath/jdwp/value.list \ gnu/gcj.list \ gnu/gcj/convert.list \ gnu/gcj/io.list \ @@ -7474,6 +7498,7 @@ ordinary_header_files = \ $(gnu_classpath_jdwp_processor_header_files) \ $(gnu_classpath_jdwp_transport_header_files) \ $(gnu_classpath_jdwp_util_header_files) \ + $(gnu_classpath_jdwp_value_header_files) \ $(gnu_gcj_header_files) \ $(gnu_gcj_convert_header_files) \ $(gnu_gcj_io_header_files) \ @@ -10083,6 +10108,12 @@ gnu/classpath/jdwp/util.list: $(gnu_classpath_jdwp_util_source_files) -include gnu/classpath/jdwp/util.deps +gnu/classpath/jdwp/value.list: $(gnu_classpath_jdwp_value_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/value/*.class > gnu/classpath/jdwp/value.list + +-include gnu/classpath/jdwp/value.deps + gnu/gcj.list: $(gnu_gcj_source_files) @$(mkinstalldirs) $(dir $@) echo $(srcdir)/classpath/lib/gnu/gcj/*.class > gnu/gcj.list diff --git a/libjava/gnu/classpath/jdwp/VMFrame.h b/libjava/gnu/classpath/jdwp/VMFrame.h index 8bc7ac6c6ba..0108e7b96d5 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 e0f093fd685..4b144af75c3 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 421f46ae18a..dd316940996 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 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); } diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h b/libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h new file mode 100644 index 00000000000..4582dac596e --- /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 +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 00000000000..f7f0f1e5955 --- /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 +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 00000000000..701bf6ebc70 --- /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 +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 00000000000..6231783b54e --- /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 +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 0c0085256b3..894791cfd5a 100644 --- a/libjava/gnu/classpath/jdwp/natVMFrame.cc +++ b/libjava/gnu/classpath/jdwp/natVMFrame.cc @@ -12,17 +12,19 @@ details. */ #include #include +#include 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 2229a451771..73b21eedff1 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 (&_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 *types, + MAYBE_UNUSED JArray *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 c83d2c105a9..30844678417 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 00000000000..8b7d65f03a0 --- /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 +#include + +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 00000000000..c071e0a8868 --- /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 +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 00000000000..57fa16ca9bb --- /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 +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 00000000000..6fa45acd3fd --- /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 +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 00000000000..2f87f776aca --- /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 +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 00000000000..c68e6836257 --- /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 +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 00000000000..d8917b9a51f --- /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 +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 00000000000..0d09aff8dce --- /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 +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 00000000000..8416558e649 --- /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 +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 00000000000..82829452694 --- /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 +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 00000000000..124d7818148 --- /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 +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 00000000000..dc8e52fd7b5 --- /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 +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 00000000000..8ab3d5465c2 --- /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 +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 00000000000..316d5d0473c --- /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 +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 00000000000..48a7277541f --- /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 +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__ diff --git a/libjava/sources.am b/libjava/sources.am index 713e4e7c697..75272d7fcac 100644 --- a/libjava/sources.am +++ b/libjava/sources.am @@ -336,7 +336,9 @@ classpath/gnu/classpath/jdwp/exception/InvalidFrameException.java \ classpath/gnu/classpath/jdwp/exception/InvalidLocationException.java \ classpath/gnu/classpath/jdwp/exception/InvalidMethodException.java \ classpath/gnu/classpath/jdwp/exception/InvalidObjectException.java \ +classpath/gnu/classpath/jdwp/exception/InvalidSlotException.java \ classpath/gnu/classpath/jdwp/exception/InvalidStringException.java \ +classpath/gnu/classpath/jdwp/exception/InvalidTagException.java \ classpath/gnu/classpath/jdwp/exception/InvalidThreadException.java \ classpath/gnu/classpath/jdwp/exception/InvalidThreadGroupException.java \ classpath/gnu/classpath/jdwp/exception/JdwpException.java \ @@ -344,6 +346,7 @@ classpath/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.java \ classpath/gnu/classpath/jdwp/exception/JdwpInternalErrorException.java \ classpath/gnu/classpath/jdwp/exception/NativeMethodException.java \ classpath/gnu/classpath/jdwp/exception/NotImplementedException.java \ +classpath/gnu/classpath/jdwp/exception/TypeMismatchException.java \ classpath/gnu/classpath/jdwp/exception/VmDeadException.java gnu_classpath_jdwp_exception_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_jdwp_exception_source_files))) @@ -363,6 +366,7 @@ classpath/gnu/classpath/jdwp/id/ClassObjectId.java \ classpath/gnu/classpath/jdwp/id/ClassReferenceTypeId.java \ classpath/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.java \ classpath/gnu/classpath/jdwp/id/JdwpId.java \ +classpath/gnu/classpath/jdwp/id/NullObjectId.java \ classpath/gnu/classpath/jdwp/id/ObjectId.java \ classpath/gnu/classpath/jdwp/id/ReferenceTypeId.java \ classpath/gnu/classpath/jdwp/id/StringId.java \ @@ -431,6 +435,8 @@ classpath/gnu/classpath/jdwp/util/JdwpString.java \ classpath/gnu/classpath/jdwp/util/LineTable.java \ classpath/gnu/classpath/jdwp/util/Location.java \ classpath/gnu/classpath/jdwp/util/MethodResult.java \ +classpath/gnu/classpath/jdwp/util/MonitorInfo.java \ +classpath/gnu/classpath/jdwp/util/NullObject.java \ classpath/gnu/classpath/jdwp/util/Signature.java \ classpath/gnu/classpath/jdwp/util/Value.java \ classpath/gnu/classpath/jdwp/util/VariableTable.java @@ -444,6 +450,30 @@ gnu/classpath/jdwp/util.list: $(gnu_classpath_jdwp_util_source_files) -include gnu/classpath/jdwp/util.deps +gnu_classpath_jdwp_value_source_files = \ +classpath/gnu/classpath/jdwp/value/BooleanValue.java \ +classpath/gnu/classpath/jdwp/value/ByteValue.java \ +classpath/gnu/classpath/jdwp/value/CharValue.java \ +classpath/gnu/classpath/jdwp/value/DoubleValue.java \ +classpath/gnu/classpath/jdwp/value/FloatValue.java \ +classpath/gnu/classpath/jdwp/value/IntValue.java \ +classpath/gnu/classpath/jdwp/value/LongValue.java \ +classpath/gnu/classpath/jdwp/value/ObjectValue.java \ +classpath/gnu/classpath/jdwp/value/ShortValue.java \ +classpath/gnu/classpath/jdwp/value/StringValue.java \ +classpath/gnu/classpath/jdwp/value/Value.java \ +classpath/gnu/classpath/jdwp/value/ValueFactory.java \ +classpath/gnu/classpath/jdwp/value/VoidValue.java + +gnu_classpath_jdwp_value_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_jdwp_value_source_files))) + +gnu/classpath/jdwp/value.list: $(gnu_classpath_jdwp_value_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/classpath/jdwp/value/*.class > gnu/classpath/jdwp/value.list + +-include gnu/classpath/jdwp/value.deps + + gnu_gcj_source_files = \ gnu/gcj/Core.java \ gnu/gcj/RawData.java \ @@ -8437,6 +8467,7 @@ all_packages_source_files = \ gnu/classpath/jdwp/processor.list \ gnu/classpath/jdwp/transport.list \ gnu/classpath/jdwp/util.list \ + gnu/classpath/jdwp/value.list \ gnu/gcj.list \ gnu/gcj/convert.list \ gnu/gcj/io.list \ @@ -8686,6 +8717,7 @@ ordinary_header_files = \ $(gnu_classpath_jdwp_processor_header_files) \ $(gnu_classpath_jdwp_transport_header_files) \ $(gnu_classpath_jdwp_util_header_files) \ + $(gnu_classpath_jdwp_value_header_files) \ $(gnu_gcj_header_files) \ $(gnu_gcj_convert_header_files) \ $(gnu_gcj_io_header_files) \ -- 2.11.0