diff options
Diffstat (limited to 'libjava/gnu/classpath/jdwp')
157 files changed, 9434 insertions, 0 deletions
diff --git a/libjava/gnu/classpath/jdwp/Jdwp$1.h b/libjava/gnu/classpath/jdwp/Jdwp$1.h new file mode 100644 index 000000000..5f779e1a8 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/Jdwp$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_Jdwp$1__ +#define __gnu_classpath_jdwp_Jdwp$1__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class Jdwp; + class Jdwp$1; + } + } + } +} + +class gnu::classpath::jdwp::Jdwp$1 : public ::java::lang::Object +{ + +public: // actually package-private + Jdwp$1(::gnu::classpath::jdwp::Jdwp *); +public: + virtual void run(); +public: // actually package-private + ::gnu::classpath::jdwp::Jdwp * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_Jdwp$1__ diff --git a/libjava/gnu/classpath/jdwp/Jdwp.h b/libjava/gnu/classpath/jdwp/Jdwp.h new file mode 100644 index 000000000..ba10ead72 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/Jdwp.h @@ -0,0 +1,83 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_Jdwp__ +#define __gnu_classpath_jdwp_Jdwp__ + +#pragma interface + +#include <java/lang/Thread.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class Jdwp; + namespace event + { + class Event; + class EventRequest; + } + namespace processor + { + class PacketProcessor; + } + namespace transport + { + class JdwpConnection; + } + } + } + } +} + +class gnu::classpath::jdwp::Jdwp : public ::java::lang::Thread +{ + +public: + Jdwp(); + static ::gnu::classpath::jdwp::Jdwp * getDefault(); + virtual ::java::lang::ThreadGroup * getJdwpThreadGroup(); + static jboolean suspendOnStartup(); + virtual void configure(::java::lang::String *); +private: + void _doInitialization(); +public: + virtual void shutdown(); + static void notify(::gnu::classpath::jdwp::event::Event *); + static void notify(JArray< ::gnu::classpath::jdwp::event::Event * > *); + static void sendEvent(::gnu::classpath::jdwp::event::EventRequest *, ::gnu::classpath::jdwp::event::Event *); + static void sendEvents(JArray< ::gnu::classpath::jdwp::event::EventRequest * > *, JArray< ::gnu::classpath::jdwp::event::Event * > *, jbyte); +private: + void _enforceSuspendPolicy(jbyte); +public: + virtual void subcomponentInitialized(); + virtual void run(); +private: + void _processConfigury(::java::lang::String *); +public: // actually package-private + static ::gnu::classpath::jdwp::processor::PacketProcessor * access$0(::gnu::classpath::jdwp::Jdwp *); +private: + static ::gnu::classpath::jdwp::Jdwp * _instance; +public: + static jboolean isDebugging; +private: + ::gnu::classpath::jdwp::processor::PacketProcessor * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) _packetProcessor; + ::java::lang::Thread * _ppThread; + ::java::util::HashMap * _properties; + static ::java::lang::String * _PROPERTY_SUSPEND; + ::gnu::classpath::jdwp::transport::JdwpConnection * _connection; + jboolean _shutdown; + ::java::lang::ThreadGroup * _group; + ::java::lang::Object * _initLock; + jint _initCount; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_Jdwp__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$ClassStatus.h b/libjava/gnu/classpath/jdwp/JdwpConstants$ClassStatus.h new file mode 100644 index 000000000..4cc150269 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$ClassStatus.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$ClassStatus__ +#define __gnu_classpath_jdwp_JdwpConstants$ClassStatus__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$ClassStatus; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$ClassStatus : public ::java::lang::Object +{ + +public: + JdwpConstants$ClassStatus(); + static const jint VERIFIED = 1; + static const jint PREPARED = 2; + static const jint INITIALIZED = 4; + static const jint ERROR = 8; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$ClassStatus__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.h new file mode 100644 index 000000000..940ada888 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayReference.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayReference__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ArrayReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ArrayReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ArrayReference(); + static const jbyte CS_VALUE = 13; + static const jbyte LENGTH = 1; + static const jbyte GET_VALUES = 2; + static const jbyte SET_VALUES = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.h new file mode 100644 index 000000000..0115eb22f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ArrayType.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayType__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayType__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ArrayType; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ArrayType : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ArrayType(); + static const jbyte CS_VALUE = 4; + static const jbyte NEW_INSTANCE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ArrayType__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.h new file mode 100644 index 000000000..372555093 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassLoaderReference.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassLoaderReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassLoaderReference__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ClassLoaderReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ClassLoaderReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ClassLoaderReference(); + static const jbyte CS_VALUE = 14; + static const jbyte VISIBLE_CLASSES = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassLoaderReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.h new file mode 100644 index 000000000..73f215251 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassObjectReference.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassObjectReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassObjectReference__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ClassObjectReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ClassObjectReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ClassObjectReference(); + static const jbyte CS_VALUE = 17; + static const jbyte REFLECTED_TYPE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassObjectReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.h new file mode 100644 index 000000000..4d905545b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ClassType.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassType__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassType__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ClassType; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ClassType : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ClassType(); + static const jbyte CS_VALUE = 3; + static const jbyte SUPERCLASS = 1; + static const jbyte SET_VALUES = 2; + static const jbyte INVOKE_METHOD = 3; + static const jbyte NEW_INSTANCE = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ClassType__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.h new file mode 100644 index 000000000..74eba4272 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Event.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$Event__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$Event__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$Event; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$Event : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$Event(); + static const jbyte CS_VALUE = 64; + static const jbyte COMPOSITE = 100; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$Event__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.h new file mode 100644 index 000000000..c486a61c1 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$EventRequest.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$EventRequest__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$EventRequest__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$EventRequest; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$EventRequest : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$EventRequest(); + static const jbyte CS_VALUE = 15; + static const jbyte SET = 1; + static const jbyte CLEAR = 2; + static const jbyte CLEAR_ALL_BREAKPOINTS = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$EventRequest__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.h new file mode 100644 index 000000000..07949aadc --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Field.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$Field__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$Field__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$Field; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$Field : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$Field(); + static const jbyte CS_VALUE = 8; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$Field__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.h new file mode 100644 index 000000000..608072d09 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$InterfaceType.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$InterfaceType__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$InterfaceType__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$InterfaceType; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$InterfaceType : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$InterfaceType(); + static const jbyte CS_VALUE = 5; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$InterfaceType__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.h new file mode 100644 index 000000000..8b4066514 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$Method.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$Method__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$Method__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$Method; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$Method : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$Method(); + static const jbyte CS_VALUE = 6; + static const jbyte LINE_TABLE = 1; + static const jbyte VARIABLE_TABLE = 2; + static const jbyte BYTE_CODES = 3; + static const jbyte IS_OBSOLETE = 4; + static const jbyte VARIABLE_TABLE_WITH_GENERIC = 5; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$Method__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.h new file mode 100644 index 000000000..3d9f5c4bd --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ObjectReference.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ObjectReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ObjectReference__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ObjectReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ObjectReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ObjectReference(); + static const jbyte CS_VALUE = 9; + static const jbyte REFERENCE_TYPE = 1; + static const jbyte GET_VALUES = 2; + static const jbyte SET_VALUES = 3; + static const jbyte MONITOR_INFO = 5; + static const jbyte INVOKE_METHOD = 6; + static const jbyte DISABLE_COLLECTION = 7; + static const jbyte ENABLE_COLLECTION = 8; + static const jbyte IS_COLLECTED = 9; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ObjectReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.h new file mode 100644 index 000000000..dc4bd002a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ReferenceType.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ReferenceType__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ReferenceType__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ReferenceType; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ReferenceType : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ReferenceType(); + static const jbyte CS_VALUE = 2; + static const jbyte SIGNATURE = 1; + static const jbyte CLASS_LOADER = 2; + static const jbyte MODIFIERS = 3; + static const jbyte FIELDS = 4; + static const jbyte METHODS = 5; + static const jbyte GET_VALUES = 6; + static const jbyte SOURCE_FILE = 7; + static const jbyte NESTED_TYPES = 8; + static const jbyte STATUS = 9; + static const jbyte INTERFACES = 10; + static const jbyte CLASS_OBJECT = 11; + static const jbyte SOURCE_DEBUG_EXTENSION = 12; + static const jbyte SIGNATURE_WITH_GENERIC = 13; + static const jbyte FIELDS_WITH_GENERIC = 14; + static const jbyte METHODS_WITH_GENERIC = 15; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ReferenceType__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.h new file mode 100644 index 000000000..60f4072c6 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StackFrame.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$StackFrame__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$StackFrame__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$StackFrame; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$StackFrame : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$StackFrame(); + static const jbyte CS_VALUE = 16; + static const jbyte GET_VALUES = 1; + static const jbyte SET_VALUES = 2; + static const jbyte THIS_OBJECT = 3; + static const jbyte POP_FRAMES = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$StackFrame__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.h new file mode 100644 index 000000000..f795c3a8d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$StringReference.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$StringReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$StringReference__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$StringReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$StringReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$StringReference(); + static const jbyte CS_VALUE = 10; + static const jbyte VALUE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$StringReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.h new file mode 100644 index 000000000..3cf1f553c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadGroupReference.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadGroupReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadGroupReference__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ThreadGroupReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ThreadGroupReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ThreadGroupReference(); + static const jbyte CS_VALUE = 12; + static const jbyte NAME = 1; + static const jbyte PARENT = 2; + static const jbyte CHILDREN = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadGroupReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.h new file mode 100644 index 000000000..603c6d1c4 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$ThreadReference.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadReference__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadReference__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$ThreadReference; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$ThreadReference : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$ThreadReference(); + static const jbyte CS_VALUE = 11; + static const jbyte NAME = 1; + static const jbyte SUSPEND = 2; + static const jbyte RESUME = 3; + static const jbyte STATUS = 4; + static const jbyte THREAD_GROUP = 5; + static const jbyte FRAMES = 6; + static const jbyte FRAME_COUNT = 7; + static const jbyte OWNED_MONITORS = 8; + static const jbyte CURRENT_CONTENDED_MONITOR = 9; + static const jbyte STOP = 10; + static const jbyte INTERRUPT = 11; + static const jbyte SUSPEND_COUNT = 12; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$ThreadReference__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.h new file mode 100644 index 000000000..a6f69331d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet$VirtualMachine.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet$VirtualMachine__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet$VirtualMachine__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet$VirtualMachine; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet$VirtualMachine : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet$VirtualMachine(); + static const jbyte CS_VALUE = 1; + static const jbyte VERSION = 1; + static const jbyte CLASSES_BY_SIGNATURE = 2; + static const jbyte ALL_CLASSES = 3; + static const jbyte ALL_THREADS = 4; + static const jbyte TOP_LEVEL_THREAD_GROUPS = 5; + static const jbyte DISPOSE = 6; + static const jbyte IDSIZES = 7; + static const jbyte SUSPEND = 8; + static const jbyte RESUME = 9; + static const jbyte EXIT = 10; + static const jbyte CREATE_STRING = 11; + static const jbyte CAPABILITIES = 12; + static const jbyte CLASS_PATHS = 13; + static const jbyte DISPOSE_OBJECTS = 14; + static const jbyte HOLD_EVENTS = 15; + static const jbyte RELEASE_EVENTS = 16; + static const jbyte CAPABILITIES_NEW = 17; + static const jbyte REDEFINE_CLASSES = 18; + static const jbyte SET_DEFAULT_STRATUM = 19; + static const jbyte ALL_CLASSES_WITH_GENERIC = 20; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet$VirtualMachine__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet.h b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet.h new file mode 100644 index 000000000..3dc0bf1a2 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$CommandSet.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$CommandSet__ +#define __gnu_classpath_jdwp_JdwpConstants$CommandSet__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$CommandSet; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$CommandSet : public ::java::lang::Object +{ + +public: + JdwpConstants$CommandSet(); + static const jint MAXIMUM = 17; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$CommandSet__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$Error.h b/libjava/gnu/classpath/jdwp/JdwpConstants$Error.h new file mode 100644 index 000000000..138a9160b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$Error.h @@ -0,0 +1,88 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$Error__ +#define __gnu_classpath_jdwp_JdwpConstants$Error__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$Error; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$Error : public ::java::lang::Object +{ + +public: + JdwpConstants$Error(); + static const jshort NONE = 0; + static const jshort INVALID_THREAD = 10; + static const jshort INVALID_THREAD_GROUP = 11; + static const jshort INVALID_PRIORITY = 12; + static const jshort THREAD_NOT_SUSPENDED = 13; + static const jshort THREAD_SUSPENDED = 14; + static const jshort INVALID_OBJECT = 20; + static const jshort INVALID_CLASS = 21; + static const jshort CLASS_NOT_PREPARED = 22; + static const jshort INVALID_METHODID = 23; + static const jshort INVALID_LOCATION = 24; + static const jshort INVALID_FIELDID = 25; + static const jshort INVALID_FRAMEID = 30; + static const jshort NO_MORE_FRAMES = 31; + static const jshort OPAQUE_FRAME = 32; + static const jshort NOT_CURRENT_FRAME = 33; + static const jshort TYPE_MISMATCH = 34; + static const jshort INVALID_SLOT = 35; + static const jshort DUPLICATE = 40; + static const jshort NOT_FOUND = 41; + static const jshort INVALID_MONITOR = 50; + static const jshort NOT_MONITOR_OWNER = 51; + static const jshort INTERRUPT = 52; + static const jshort INVALID_CLASS_FORMAT = 60; + static const jshort CIRCULAR_CLASS_DEFINITION = 61; + static const jshort FAILS_VERIFICATION = 62; + static const jshort ADD_METHOD_NOT_IMPLEMENTED = 63; + static const jshort SCHEMA_CHANGE_NOT_IMPLEMENTED = 64; + static const jshort INVALID_TYPESTATE = 65; + static const jshort HIERARCHY_CHANGE_NOT_IMPLEMENTED = 66; + static const jshort DELETE_METHOD_NOT_IMPLEMENTED = 67; + static const jshort UNSUPPORTED_VERSION = 68; + static const jshort NAMES_DONT_MATCH = 69; + static const jshort CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED = 70; + static const jshort METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED = 71; + static const jshort NOT_IMPLEMENTED = 99; + static const jshort NULL_POINTER = 100; + static const jshort ABSENT_INFORMATION = 101; + static const jshort INVALID_EVENT_TYPE = 102; + static const jshort ILLEGAL_ARGUMENT = 103; + static const jshort OUT_OF_MEMORY = 110; + static const jshort ACCESS_DENIED = 111; + static const jshort VM_DEAD = 112; + static const jshort INTERNAL = 113; + static const jshort UNATTACHED_THREAD = 115; + static const jshort INVALID_TAG = 500; + static const jshort ALREADY_INVOKING = 502; + static const jshort INVALID_INDEX = 503; + static const jshort INVALID_LENGTH = 504; + static const jshort INVALID_STRING = 506; + static const jshort INVALID_CLASS_LOADER = 507; + static const jshort INVALID_ARRAY = 508; + static const jshort TRANSPORT_LOAD = 509; + static const jshort TRANSPORT_INIT = 510; + static const jshort NATIVE_METHOD = 511; + static const jshort INVALID_COUNT = 512; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$Error__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$EventKind.h b/libjava/gnu/classpath/jdwp/JdwpConstants$EventKind.h new file mode 100644 index 000000000..bdb501c1b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$EventKind.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$EventKind__ +#define __gnu_classpath_jdwp_JdwpConstants$EventKind__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$EventKind; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$EventKind : public ::java::lang::Object +{ + +public: + JdwpConstants$EventKind(); + static const jbyte SINGLE_STEP = 1; + static const jbyte BREAKPOINT = 2; + static const jbyte FRAME_POP = 3; + static const jbyte EXCEPTION = 4; + static const jbyte USER_DEFINED = 5; + static const jbyte THREAD_START = 6; + static const jbyte THREAD_END = 7; + static const jbyte CLASS_PREPARE = 8; + static const jbyte CLASS_UNLOAD = 9; + static const jbyte CLASS_LOAD = 10; + static const jbyte FIELD_ACCESS = 20; + static const jbyte FIELD_MODIFICATION = 21; + static const jbyte EXCEPTION_CATCH = 30; + static const jbyte METHOD_ENTRY = 40; + static const jbyte METHOD_EXIT = 41; + static const jbyte VM_INIT = 90; + static const jbyte VM_DEATH = 99; + static const jbyte VM_DISCONNECTED = 100; + static const jbyte VM_START = 90; + static const jbyte THREAD_DEATH = 7; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$EventKind__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.h b/libjava/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.h new file mode 100644 index 000000000..bcd412b97 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$InvokeOptions.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$InvokeOptions__ +#define __gnu_classpath_jdwp_JdwpConstants$InvokeOptions__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$InvokeOptions; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$InvokeOptions : public ::java::lang::Object +{ + +public: + JdwpConstants$InvokeOptions(); + static const jint INVOKE_SINGLE_THREADED = 1; + static const jint INVOKE_NONVIRTUAL = 2; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$InvokeOptions__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$ModKind.h b/libjava/gnu/classpath/jdwp/JdwpConstants$ModKind.h new file mode 100644 index 000000000..f2f087a7a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$ModKind.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$ModKind__ +#define __gnu_classpath_jdwp_JdwpConstants$ModKind__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$ModKind; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$ModKind : public ::java::lang::Object +{ + +public: + JdwpConstants$ModKind(); + static const jbyte COUNT = 1; + static const jbyte CONDITIONAL = 2; + static const jbyte THREAD_ONLY = 3; + static const jbyte CLASS_ONLY = 4; + static const jbyte CLASS_MATCH = 5; + static const jbyte CLASS_EXCLUDE = 6; + static const jbyte LOCATION_ONLY = 7; + static const jbyte EXCEPTION_ONLY = 8; + static const jbyte FIELD_ONLY = 9; + static const jbyte STEP = 10; + static const jbyte INSTANCE_ONLY = 11; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$ModKind__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$StepDepth.h b/libjava/gnu/classpath/jdwp/JdwpConstants$StepDepth.h new file mode 100644 index 000000000..55d1b6227 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$StepDepth.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$StepDepth__ +#define __gnu_classpath_jdwp_JdwpConstants$StepDepth__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$StepDepth; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$StepDepth : public ::java::lang::Object +{ + +public: + JdwpConstants$StepDepth(); + static const jint INTO = 0; + static const jint OVER = 1; + static const jint OUT = 2; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$StepDepth__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$StepSize.h b/libjava/gnu/classpath/jdwp/JdwpConstants$StepSize.h new file mode 100644 index 000000000..abd3a2507 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$StepSize.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$StepSize__ +#define __gnu_classpath_jdwp_JdwpConstants$StepSize__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$StepSize; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$StepSize : public ::java::lang::Object +{ + +public: + JdwpConstants$StepSize(); + static const jint MIN = 0; + static const jint LINE = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$StepSize__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.h b/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.h new file mode 100644 index 000000000..8facf5795 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendPolicy.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$SuspendPolicy__ +#define __gnu_classpath_jdwp_JdwpConstants$SuspendPolicy__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$SuspendPolicy; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$SuspendPolicy : public ::java::lang::Object +{ + +public: + JdwpConstants$SuspendPolicy(); + static const jbyte NONE = 0; + static const jbyte EVENT_THREAD = 1; + static const jbyte ALL = 2; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$SuspendPolicy__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.h b/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.h new file mode 100644 index 000000000..6c578097d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$SuspendStatus.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$SuspendStatus__ +#define __gnu_classpath_jdwp_JdwpConstants$SuspendStatus__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$SuspendStatus; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$SuspendStatus : public ::java::lang::Object +{ + +public: + JdwpConstants$SuspendStatus(); + static const jbyte SUSPENDED = 1; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$SuspendStatus__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$Tag.h b/libjava/gnu/classpath/jdwp/JdwpConstants$Tag.h new file mode 100644 index 000000000..99c3df9bb --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$Tag.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$Tag__ +#define __gnu_classpath_jdwp_JdwpConstants$Tag__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$Tag; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$Tag : public ::java::lang::Object +{ + +public: + JdwpConstants$Tag(); + static const jbyte ARRAY = 91; + static const jbyte BYTE = 66; + static const jbyte CHAR = 67; + static const jbyte OBJECT = 76; + static const jbyte FLOAT = 70; + static const jbyte DOUBLE = 68; + static const jbyte INT = 73; + static const jbyte LONG = 74; + static const jbyte SHORT = 83; + static const jbyte VOID = 86; + static const jbyte BOOLEAN = 90; + static const jbyte STRING = 115; + static const jbyte THREAD = 116; + static const jbyte THREAD_GROUP = 103; + static const jbyte CLASS_LOADER = 108; + static const jbyte CLASS_OBJECT = 99; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$Tag__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.h b/libjava/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.h new file mode 100644 index 000000000..411abad0c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$ThreadStatus.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$ThreadStatus__ +#define __gnu_classpath_jdwp_JdwpConstants$ThreadStatus__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$ThreadStatus; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$ThreadStatus : public ::java::lang::Object +{ + +public: + JdwpConstants$ThreadStatus(); + static const jint ZOMBIE = 0; + static const jint RUNNING = 1; + static const jint SLEEPING = 2; + static const jint MONITOR = 3; + static const jint WAIT = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$ThreadStatus__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$TypeTag.h b/libjava/gnu/classpath/jdwp/JdwpConstants$TypeTag.h new file mode 100644 index 000000000..426d3d23c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$TypeTag.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$TypeTag__ +#define __gnu_classpath_jdwp_JdwpConstants$TypeTag__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$TypeTag; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$TypeTag : public ::java::lang::Object +{ + +public: + JdwpConstants$TypeTag(); + static const jbyte CLASS = 1; + static const jbyte INTERFACE = 2; + static const jbyte ARRAY = 3; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$TypeTag__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants$Version.h b/libjava/gnu/classpath/jdwp/JdwpConstants$Version.h new file mode 100644 index 000000000..293652fab --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants$Version.h @@ -0,0 +1,34 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants$Version__ +#define __gnu_classpath_jdwp_JdwpConstants$Version__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants$Version; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants$Version : public ::java::lang::Object +{ + +public: + JdwpConstants$Version(); + static const jint MAJOR = 1; + static const jint MINOR = 4; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants$Version__ diff --git a/libjava/gnu/classpath/jdwp/JdwpConstants.h b/libjava/gnu/classpath/jdwp/JdwpConstants.h new file mode 100644 index 000000000..98f0b888e --- /dev/null +++ b/libjava/gnu/classpath/jdwp/JdwpConstants.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_JdwpConstants__ +#define __gnu_classpath_jdwp_JdwpConstants__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class JdwpConstants; + } + } + } +} + +class gnu::classpath::jdwp::JdwpConstants : public ::java::lang::Object +{ + +public: + JdwpConstants(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_JdwpConstants__ diff --git a/libjava/gnu/classpath/jdwp/VMFrame.h b/libjava/gnu/classpath/jdwp/VMFrame.h new file mode 100644 index 000000000..737f39de2 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMFrame.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMFrame__ +#define __gnu_classpath_jdwp_VMFrame__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMFrame; + namespace util + { + class Location; + } + namespace value + { + class Value; + } + } + } + } +} + +class gnu::classpath::jdwp::VMFrame : public ::java::lang::Object +{ + +public: + VMFrame(::java::lang::Thread *, jlong, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::gnu::classpath::jdwp::util::Location * getLocation(); + 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(); + static const jint SIZE = 8; +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::java::lang::Object)))) thread; + ::java::lang::Object * obj; + ::gnu::classpath::jdwp::util::Location * loc; + jlong id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMFrame__ diff --git a/libjava/gnu/classpath/jdwp/VMFrame.java b/libjava/gnu/classpath/jdwp/VMFrame.java new file mode 100644 index 000000000..de2640c85 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMFrame.java @@ -0,0 +1,134 @@ +/* VMFrame.java -- Reference implementation of VM hooks for JDWP Frame access. + Copyright (C) 2005, 2006, 2007 Free Software Foundation + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +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. + * + * @author aluchko + */ + +public class VMFrame +{ + /** + * Returns the size of a frame ID over JDWP + */ + public static final int SIZE = 8; + + // The thread this frame resides in + private Thread thread; + + //The object of this frame + private Object obj; + + // The current location of this frame + private Location loc; + + // id of this frame + private long id; + + /** + * Create a new VMFrame object. + * + * @param thr a Thread, the thread this frame is in + * @param frame_id a long, the jframeID of this frame + * @param frame_loc a Location, the location of this frame + */ + public VMFrame(Thread thr, long frame_id, Location frame_loc, + Object frame_obj) + { + thread = thr; + id = frame_id; + loc = frame_loc; + obj = frame_obj; + } + + /** + * Gets the current location of the frame. + */ + public Location getLocation() + { + return loc; + } + + /** + * Returns the value of the variable in the given slot. + * + * @param slot the slot containing the variable + */ + 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, Value value); + + /** + * Get the thread this frame is in. + */ + public Thread getThread() + { + return thread; + } + + /** + * Get the object which is represented by 'this' in the context of the frame, + * returns null if the method is native or static. + */ + public Object getObject() + { + return obj; + } + + /** + * Get the frameID + * @return an id which is unique within the scope of the VM + */ + public long getId() + { + return id; + } + +} diff --git a/libjava/gnu/classpath/jdwp/VMIdManager$IdFactory.h b/libjava/gnu/classpath/jdwp/VMIdManager$IdFactory.h new file mode 100644 index 000000000..f24d6b368 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMIdManager$IdFactory.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMIdManager$IdFactory__ +#define __gnu_classpath_jdwp_VMIdManager$IdFactory__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMIdManager$IdFactory; + namespace id + { + class ObjectId; + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::VMIdManager$IdFactory : public ::java::lang::Object +{ + + VMIdManager$IdFactory(); +public: + static ::gnu::classpath::jdwp::id::ObjectId * newObjectId(::java::lang::ref::SoftReference *); + static ::gnu::classpath::jdwp::id::ReferenceTypeId * newReferenceTypeId(::java::lang::ref::SoftReference *); +private: + static ::java::lang::Object * _idLock; + static ::java::lang::Object * _ridLock; + static jlong _lastId; + static jlong _lastRid; + static ::java::util::HashMap * _idList; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMIdManager$IdFactory__ diff --git a/libjava/gnu/classpath/jdwp/VMIdManager$ReferenceKey.h b/libjava/gnu/classpath/jdwp/VMIdManager$ReferenceKey.h new file mode 100644 index 000000000..7acd047a6 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMIdManager$ReferenceKey.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMIdManager$ReferenceKey__ +#define __gnu_classpath_jdwp_VMIdManager$ReferenceKey__ + +#pragma interface + +#include <java/lang/ref/SoftReference.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMIdManager; + class VMIdManager$ReferenceKey; + } + } + } +} + +class gnu::classpath::jdwp::VMIdManager$ReferenceKey : public ::java::lang::ref::SoftReference +{ + +public: + VMIdManager$ReferenceKey(::gnu::classpath::jdwp::VMIdManager *, ::java::lang::Object *); + VMIdManager$ReferenceKey(::gnu::classpath::jdwp::VMIdManager *, ::java::lang::Object *, ::java::lang::ref::ReferenceQueue *); + virtual jint hashCode(); + virtual jboolean equals(::java::lang::Object *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::ref::SoftReference)))) _hash; +public: // actually package-private + ::gnu::classpath::jdwp::VMIdManager * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMIdManager$ReferenceKey__ diff --git a/libjava/gnu/classpath/jdwp/VMIdManager.h b/libjava/gnu/classpath/jdwp/VMIdManager.h new file mode 100644 index 000000000..22fc42f82 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMIdManager.h @@ -0,0 +1,62 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMIdManager__ +#define __gnu_classpath_jdwp_VMIdManager__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMIdManager; + namespace id + { + class ObjectId; + class ReferenceTypeId; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::VMIdManager : public ::java::lang::Object +{ + +public: + static ::gnu::classpath::jdwp::VMIdManager * getDefault(); +private: + VMIdManager(); + void _update(); +public: + virtual ::gnu::classpath::jdwp::id::ObjectId * getObjectId(::java::lang::Object *); + virtual ::gnu::classpath::jdwp::id::ObjectId * get(jlong); + virtual ::gnu::classpath::jdwp::id::ObjectId * readObjectId(::java::nio::ByteBuffer *); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getReferenceTypeId(::java::lang::Class *); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getReferenceType(jlong); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * readReferenceTypeId(::java::nio::ByteBuffer *); +private: + static ::gnu::classpath::jdwp::VMIdManager * _idm; + ::java::lang::ref::ReferenceQueue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _refQueue; + ::java::util::Hashtable * _oidTable; + ::java::util::Hashtable * _idTable; + ::java::util::Hashtable * _classTable; + ::java::util::Hashtable * _ridTable; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMIdManager__ diff --git a/libjava/gnu/classpath/jdwp/VMIdManager.java b/libjava/gnu/classpath/jdwp/VMIdManager.java new file mode 100644 index 000000000..f787a8cdc --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMIdManager.java @@ -0,0 +1,435 @@ +/* VMIdManager.java -- A reference/example implementation of a manager for + JDWP object/reference type IDs + + Copyright (C) 2005, 2006, 2007 Free Software Foundation + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package gnu.classpath.jdwp; + +import gnu.classpath.jdwp.exception.InvalidClassException; +import gnu.classpath.jdwp.exception.InvalidObjectException; +import gnu.classpath.jdwp.id.*; + +import java.lang.ref.Reference; +import java.lang.ref.ReferenceQueue; +import java.lang.ref.SoftReference; +import java.nio.ByteBuffer; +import java.util.HashMap; +import java.util.Hashtable; + +/** + * This class manages objects and referencetypes that are reported + * to the debugger. All objects and referencetypes reported to the + * debugger should go through this manager. + * + * A brief summary of what an <code>IdManager</code> must provide: + * + * <code> + * public ObjectId getObjectId (Object theObject); + * public ObjectId get (long id); + * public ObjectId readObjectId (ByteBuffer bb); + * public ReferenceTypeId getReferenceTypeId (Class clazz); + * public ReferenceTypeId getReferenceType (long id); + * public ReferenceTypeId readReferenceTypeId (ByteBuffer bb); + * </code> + * + * See the javadoc on these methods later in this file for more + * information on these functions. + * + * <b>NOTE:</b> All IDs handled by the ID manager (all object and reference + * type IDs) are assumed to be of type <code>long</code>. + * + * <b>NOTE:</b> This class does not manage virtual machine-specific types, + * like methods, fields, and frames. These already have unique IDs within + * the virtual machine and do not need further abstraction here. + * + * @author Keith Seitz (keiths@redhat.com) + */ +public class VMIdManager +{ + // This factory generates ids for objects and types that may + // be sent to a debugger. + private static class IdFactory + { + // ID of last object / referencetype + private static Object _idLock = new Object (); + private static Object _ridLock = new Object (); + private static long _lastId = 0; + private static long _lastRid = 0; + + // A list of all ID types + private static HashMap _idList = new HashMap (); + + // Initialize the id list with known types + static + { + // ObjectId and ArrayId are special cases. See newObjectId. + _idList.put (ClassLoaderId.typeClass, ClassLoaderId.class); + _idList.put (ClassObjectId.typeClass, ClassObjectId.class); + _idList.put (StringId.typeClass, StringId.class); + _idList.put (ThreadId.typeClass, ThreadId.class); + _idList.put (ThreadGroupId.typeClass, ThreadGroupId.class); + } + + /** + * Returns a new id for the given object + * + * @param obj SoftReference of the object for which an id is desired + * @returns a suitable object id + */ + public static ObjectId newObjectId (SoftReference obj) + { + ObjectId id = null; + Object object = obj.get (); + + // Special case: arrays + if (object.getClass ().isArray ()) + id = new ArrayId (); + else + { + // Loop through all classes until we hit baseclass + Class myClass; + for (myClass = object.getClass (); myClass != null; + myClass = myClass.getSuperclass ()) + { + Class clz = (Class) _idList.get (myClass); + if (clz != null) + { + try + { + id = (ObjectId) clz.newInstance (); + synchronized (_idLock) + { + id.setId (++_lastId); + } + id.setReference (obj); + return id; + } + catch (InstantiationException ie) + { + // This really should not happen + throw new RuntimeException ("cannot create new ID", ie); + } + catch (IllegalAccessException iae) + { + // This really should not happen + throw new RuntimeException ("illegal access of ID", iae); + } + } + } + + /* getSuperclass returned null and no matching ID type found. + So it must derive from Object. */ + id = new ObjectId (); + } + + synchronized (_idLock) + { + id.setId (++_lastId); + } + id.setReference (obj); + return id; + } + + /** + * Returns a new reference type id for the given class + * + * @param ref SoftReference to the desired type + * @returns a suitable reference type id or null when the + * reference is cleared. + */ + public static ReferenceTypeId newReferenceTypeId (SoftReference ref) + { + ReferenceTypeId id; + Class clazz = (Class) ref.get (); + if (clazz == null) + return null; + + if (clazz.isArray ()) + id = new ArrayReferenceTypeId (); + else if (clazz.isInterface ()) + id = new InterfaceReferenceTypeId (); + else + id = new ClassReferenceTypeId (); + id.setReference (ref); + synchronized (_ridLock) + { + id.setId (++_lastRid); + } + return id; + } + } + + /** + * This class is a SoftReferenceIdentity type that is used by + * the ID manager. + */ + class ReferenceKey extends SoftReference + { + // Hash code of referent + private int _hash; + + /** + * Constructs a new <code>ReferenceKey</code> object + * with the given referent. + * + * <p>This constructor should only be used for object lookups + * by the backend. + * + * @param referent the object to reference + */ + public ReferenceKey (Object referent) + { + super (referent); + _hash = referent.hashCode (); + } + + /** + * Constructs a new <code>ReferenceKey</code> object + * with the given referent and reference queue. + * + * <p>The JDWP back-end stores a <code>ReferenceKey</code> + * with its corresponding <code>JdwpId</code>. This constructor + * is used by the back-end when adding new IDs to be managed. + * + * @param referent the object to reference + * @param queue the queue to which to report garbage collections + */ + public ReferenceKey (Object referent, ReferenceQueue queue) + { + super (referent, queue); + _hash = referent.hashCode (); + } + + /** + * Returns the hash code of the referent. + * This seems hacky, but is required in order to use this class + * as a hash table key. + * + * @returns the hash code of the referent + */ + public int hashCode () + { + return _hash; + } + + /** + * Comparator for keys + * + * This method can be used in two ways: + * + * <ol> + * <li>For table lookups, where we want to compare referents</li> + * <li>For clearing GCd objects, where we want to compare the actual + * key object (not the referent)</li> + * </ol> + */ + public boolean equals (Object obj) + { + if (obj instanceof ReferenceKey) + { + ReferenceKey ref = (ReferenceKey) obj; + + /* First check if the two references are the same. + If they are, that means we must be clearing GCd objects. */ + if (this == obj) + return true; + + return (ref.get () == get ()); + } + + return false; + } + } + + // instance of VMIdManager + private static VMIdManager _idm = new VMIdManager (); + + // A reference queue for our objects + private ReferenceQueue _refQueue; + + // Mapping of objects (ReferenceKey) to IDs (ObjectId) + private Hashtable _oidTable; + + // Mapping of ID numbers (Long) to IDs (ObjectId) + private Hashtable _idTable; + + /* Mapping of class (ReferenceKey) to IDs (ReferenceTypeId) for reference + types. Unlike other types, reference id types are NEVER released. */ + private Hashtable _classTable; + + // Mapping of ID numbers (Long) to reference type IDs (ReferenceTypeId) + private Hashtable _ridTable; + + /** + * Gets the instance of VMIdManager, constructing a new one + * if none currently exists. + */ + public static VMIdManager getDefault () + { + return _idm; + } + + // Constructs a new <code>IdManager</code> + private VMIdManager () + { + _refQueue = new ReferenceQueue (); + _oidTable = new Hashtable (50); + _idTable = new Hashtable (50); + _classTable = new Hashtable (20); + _ridTable = new Hashtable (20); + } + + // Updates the object ID table, removing IDs whose objects have + // been garbage collected. + private void _update () + { + Reference ref; + while ((ref = _refQueue.poll ()) != null) + { + ObjectId id = (ObjectId) _oidTable.get (ref); + _oidTable.remove (ref); + _idTable.remove (new Long (id.getId ())); + } + } + + /** + * Returns an id for the given object, adding it + * if it does not have an id. + * + * @param theObject the object to get an ID/add + * @returns the ID of the object + */ + public ObjectId getObjectId (Object theObject) + { + // Special case: null object. + if (theObject == null) + return new NullObjectId (); + + ReferenceKey ref = new ReferenceKey (theObject, _refQueue); + ObjectId id = (ObjectId) _oidTable.get (ref); + if (id == null) + { + // update the tables -- this is an arbitrary place to put this + _update (); + + // Object not found. Make new id for it + id = IdFactory.newObjectId (ref); + _oidTable.put (ref, id); + _idTable.put (new Long (id.getId ()), id); + } + + return id; + } + + /** + * Returns the <code>JdwpId</code> for a given ID. Unlike + * <code>getId</code>, it throws an exception if the ID is not + * known. + * + * @param id the numerical ID of the desired <code>JdwpId</code> + * @throws InvalidObjectException if the ID is not found + */ + public ObjectId get (long id) + throws InvalidObjectException + { + // Special case: null object id. + if (id == 0) + return new NullObjectId (); + + ObjectId oid = (ObjectId) _idTable.get (new Long (id)); + if (oid == null) + throw new InvalidObjectException (id); + + return oid; + } + + public ObjectId readObjectId (ByteBuffer bb) + throws InvalidObjectException + { + long id = bb.getLong (); + return get (id); + } + + /** + * Gets the reference type id for the given class, creating + * a new one if it does not already have an id + * + * @param clazz the class for which to get an ID + * @returns the ID of the class + */ + public ReferenceTypeId getReferenceTypeId (Class clazz) + { + ReferenceKey ref = new ReferenceKey (clazz); + ReferenceTypeId id = (ReferenceTypeId)_classTable.get (ref); + if (id == null) + { + // Object not found. Make new id for it + id = IdFactory.newReferenceTypeId (ref); + _classTable.put (ref, id); + _ridTable.put (new Long (id.getId ()), id); + } + + return id; + } + + /** + * Returns the <code>ReferenceTypeId</code> for a given ID. Unlike + * <code>getReferenceTypeId</code>, it throws an exception if the ID is not + * known. + * + * @param id the numerical ID of the desired reference type + * @throws InvalidClassException if the ID is not found + */ + public ReferenceTypeId getReferenceType (long id) + throws InvalidClassException + { + ReferenceTypeId rid = (ReferenceTypeId) _ridTable.get (new Long (id)); + if (rid == null) + throw new InvalidClassException (id); + + return rid; + } + + public ReferenceTypeId readReferenceTypeId (ByteBuffer bb) + throws InvalidClassException + { + long id = bb.getLong (); + return getReferenceType (id); + } +} diff --git a/libjava/gnu/classpath/jdwp/VMMethod.h b/libjava/gnu/classpath/jdwp/VMMethod.h new file mode 100644 index 000000000..00f4d874c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMMethod.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMMethod__ +#define __gnu_classpath_jdwp_VMMethod__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMMethod; + namespace util + { + class LineTable; + class VariableTable; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::VMMethod : public ::java::lang::Object +{ + +public: // actually protected + VMMethod(::java::lang::Class *, jlong); +public: + virtual jlong getId(); + virtual ::java::lang::Class * getDeclaringClass(); + virtual ::java::lang::String * getName(); + virtual ::java::lang::String * getSignature(); + virtual jint getModifiers(); + virtual ::gnu::classpath::jdwp::util::LineTable * getLineTable(); + virtual ::gnu::classpath::jdwp::util::VariableTable * getVariableTable(); + virtual ::java::lang::String * toString(); + virtual void writeId(::java::io::DataOutputStream *); + static ::gnu::classpath::jdwp::VMMethod * readId(::java::lang::Class *, ::java::nio::ByteBuffer *); + virtual jboolean equals(::java::lang::Object *); + static const jint SIZE = 8; +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _class; + jlong _methodId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMMethod__ diff --git a/libjava/gnu/classpath/jdwp/VMMethod.java b/libjava/gnu/classpath/jdwp/VMMethod.java new file mode 100644 index 000000000..6a2b04ecf --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMMethod.java @@ -0,0 +1,189 @@ +/* VMMethod.java -- a method in a virtual machine + Copyright (C) 2006, 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package gnu.classpath.jdwp; + +import java.io.DataOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; + +import gnu.classpath.jdwp.exception.JdwpException; +import gnu.classpath.jdwp.util.LineTable; +import gnu.classpath.jdwp.util.VariableTable; + +/** + * This class is really an amalgamation of two classes: one class + * represents a virtual machine method and the other represents + * the JDWP back-end's ID for the method. + * + * @author Keith Seitz (keiths@redhat.com) + */ +public class VMMethod +{ + /** + * Returns the size of a JDWP method ID + * @see gnu.classpath.jdwp.id.JdwpId#SIZE + */ + public static final int SIZE = 8; + + // The class in which this method is declared + private Class _class; + + // The method's ID + private long _methodId; + + /** + * Constructs a new VMMethod object. This constructor is protected + * so that only the factory methods of VMVirtualMachine can be used + * to create VMMethods. + * + * @param klass the method's containing class + * @param id method identifier, e.g., jmethodID + * @see gnu.classpath.jdwp.VMVirtualMachine#getAllClassMethods + * @see gnu.classpath.jdwp.VMVirtualMachine#getClassMethod + */ + protected VMMethod(Class klass, long id) + { + _class = klass; + _methodId = id; + } + + /** + * Returns the internal method ID for this method + */ + public long getId() + { + return _methodId; + } + + /** + * Returns the method's declaring class + */ + public Class getDeclaringClass() + { + return _class; + } + + /** + * Returns the name of this method + */ + public native String getName(); + + /** + * Returns the signature of this method + */ + public native String getSignature(); + + /** + * Returns the method's modifier flags + */ + public native int getModifiers(); + + /** + * "Returns line number information for the method, if present. The line + * table maps source line numbers to the initial code index of the line. + * The line table is ordered by code index (from lowest to highest). The + * line number information is constant unless a new class definition is + * installed using RedefineClasses." + * + * @return the line table + * @throws JdwpException + */ + public native LineTable getLineTable() + throws JdwpException; + + /** + * "Returns variable information for the method. The variable table + * includes arguments and locals declared within the method. For instance + * methods, the "this" reference is included in the table. Also, synthetic + * variables may be present." + * + * @return the variable table + * @throws JdwpException + */ + public native VariableTable getVariableTable() + throws JdwpException; + + /** + * Returns a string representation of this method (not + * required but nice for debugging). + */ + public String toString() + { + return getDeclaringClass().getName() + "." + getName(); + } + + /** + * Writes the method's ID to the output stream + * + * @param ostream the output stream to which to write + * @throws IOException for any errors writing to the stream + * @see gnu.classpath.jdwp.id.JdwpId#write + */ + public void writeId(DataOutputStream ostream) + throws IOException + { + ostream.writeLong(getId()); + } + + /** + * Returns a VMMethod from the ID in the byte buffer + * + * @param klass the method's declaring class + * @param bb a ByteBuffer containing the method's ID + * @throws JdwpException for any errors creating the method + * @throws IOException for any errors reading from the buffer + */ + public static VMMethod readId(Class klass, ByteBuffer bb) + throws JdwpException, IOException + { + return VMVirtualMachine.getClassMethod(klass, bb.getLong()); + } + + public boolean equals(Object obj) + { + if (obj instanceof VMMethod) + { + VMMethod m = (VMMethod) obj; + return (getId() == m.getId()); + } + + return false; + } +} diff --git a/libjava/gnu/classpath/jdwp/VMVirtualMachine.h b/libjava/gnu/classpath/jdwp/VMVirtualMachine.h new file mode 100644 index 000000000..1f7d03abd --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMVirtualMachine.h @@ -0,0 +1,98 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_VMVirtualMachine__ +#define __gnu_classpath_jdwp_VMVirtualMachine__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMFrame; + class VMMethod; + class VMVirtualMachine; + namespace event + { + class EventRequest; + } + namespace util + { + class MethodResult; + class MonitorInfo; + } + namespace value + { + class Value; + } + } + } + } +} + +class gnu::classpath::jdwp::VMVirtualMachine : public ::java::lang::Object +{ + +public: + VMVirtualMachine(); + static void initialize(); + static void suspendThread(::java::lang::Thread *); + static void suspendAllThreads(); + static void resumeThread(::java::lang::Thread *); + static void resumeAllThreads(); + static jint getSuspendCount(::java::lang::Thread *); + 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); + static ::java::util::ArrayList * getFrames(::java::lang::Thread *, jint, jint); + static ::gnu::classpath::jdwp::VMFrame * getFrame(::java::lang::Thread *, jlong); + static jint getFrameCount(::java::lang::Thread *); + static jint getThreadStatus(::java::lang::Thread *); + static ::java::util::ArrayList * getLoadRequests(::java::lang::ClassLoader *); + static ::gnu::classpath::jdwp::util::MethodResult * executeMethod(::java::lang::Object *, ::java::lang::Thread *, ::java::lang::Class *, ::gnu::classpath::jdwp::VMMethod *, JArray< ::gnu::classpath::jdwp::value::Value * > *, jint); + static ::java::lang::String * getSourceFile(::java::lang::Class *); + 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 + static ::java::util::Hashtable * _stepping_threads; + static ::java::util::ArrayList * _event_list; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_VMVirtualMachine__ diff --git a/libjava/gnu/classpath/jdwp/VMVirtualMachine.java b/libjava/gnu/classpath/jdwp/VMVirtualMachine.java new file mode 100644 index 000000000..acd0996ad --- /dev/null +++ b/libjava/gnu/classpath/jdwp/VMVirtualMachine.java @@ -0,0 +1,437 @@ +/* VMVirtualMachine.java -- A reference implementation of a JDWP virtual + machine + + Copyright (C) 2005, 2006, 2007 Free Software Foundation + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package gnu.classpath.jdwp; + +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 gnu.classpath.jdwp.value.Value; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Hashtable; + +/** + * A virtual machine according to JDWP. + * + * @author Keith Seitz <keiths@redhat.com> + */ +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; + + // List of stepping threads: maps Thread -> stepping info + static Hashtable _stepping_threads; + + // List of co-located JVMTI events + static ArrayList _event_list; + + public static native void initialize (); + + /** + * Suspend a thread + * + * @param thread the thread to suspend + */ + public static native void suspendThread (Thread thread) + throws JdwpException; + + /** + * Suspend all threads + */ + public static void suspendAllThreads () + throws JdwpException + { + // Our JDWP thread group -- don't suspend any of those threads + Thread current = Thread.currentThread (); + ThreadGroup jdwpGroup = Jdwp.getDefault().getJdwpThreadGroup(); + + // Find the root ThreadGroup + ThreadGroup group = jdwpGroup; + ThreadGroup parent = group.getParent (); + while (parent != null) + { + group = parent; + parent = group.getParent (); + } + + // Get all the threads in the system + int num = group.activeCount (); + Thread[] threads = new Thread[num]; + group.enumerate (threads); + + for (int i = 0; i < num; ++i) + { + Thread t = threads[i]; + if (t != null) + { + if (t.getThreadGroup () == jdwpGroup || t == current) + { + // Don't suspend the current thread or any JDWP thread + continue; + } + else + suspendThread (t); + } + } + + // Now suspend the current thread + if (current.getThreadGroup() != jdwpGroup) + suspendThread (current); + } + + /** + * Resume a thread. A thread must be resumed as many times + * as it has been suspended. + * + * @param thread the thread to resume + */ + public static native void resumeThread (Thread thread) + throws JdwpException; + + /** + * Resume all threads. This simply decrements the thread's + * suspend count. It can not be used to force the application + * to run. + */ + public static void resumeAllThreads () + throws JdwpException + { + // Our JDWP thread group -- don't resume + Thread current = Thread.currentThread (); + ThreadGroup jdwpGroup = current.getThreadGroup (); + + // Find the root ThreadGroup + ThreadGroup group = jdwpGroup; + ThreadGroup parent = group.getParent (); + while (parent != null) + { + group = parent; + parent = group.getParent (); + } + + // Get all the threads in the system + int num = group.activeCount (); + Thread[] threads = new Thread[num]; + group.enumerate (threads); + + for (int i = 0; i < num; ++i) + { + Thread t = threads[i]; + if (t != null) + { + if (t.getThreadGroup () == jdwpGroup || t == current) + { + // Don't resume the current thread or any JDWP thread + continue; + } + else + resumeThread (t); + } + } + } + + /** + * Get the suspend count for a give thread + * + * @param thread the thread whose suspend count is desired + * @return the number of times the thread has been suspended + */ + public static native int getSuspendCount (Thread thread) + throws JdwpException; + + /** + * Returns a Collection of all classes loaded in the VM + */ + public static native Collection getAllLoadedClasses () + throws JdwpException; + + /** + * Returns the status of the given class + * + * @param clazz the class whose status is desired + * @return a flag containing the class's status + * @see JdwpConstants.ClassStatus + */ + public static native int getClassStatus (Class clazz) + throws JdwpException; + + /** + * Returns all of the methods defined in the given class. This + * includes all methods, constructors, and class initializers. + * + * @param klass the class whose methods are desired + * @return an array of virtual machine methods + */ + public static native VMMethod[] getAllClassMethods (Class klass) + throws JdwpException; + + /** + * A factory method for getting valid virtual machine methods + * which may be passed to/from the debugger. + * + * @param klass the class in which the method is defined + * @param id the ID of the desired method + * @return the desired internal representation of the method + * @throws InvalidMethodException if the method is not defined + * in the class + * @throws JdwpException for any other error + */ + public static native VMMethod getClassMethod(Class klass, long id) + throws JdwpException; + + /** + * Returns the thread's call stack + * + * @param thread thread for which to get call stack + * @param start index of first frame to return + * @param length number of frames to return (-1 for all frames) + * @return a list of frames + */ + public static native ArrayList getFrames (Thread thread, int start, + int length) + throws JdwpException; + + /** + * Returns the frame for a given thread with the frame ID in + * the buffer + * + * I don't like this. + * + * @param thread the frame's thread + * @param bb buffer containing the frame's ID + * @return the desired frame + */ + public static native VMFrame getFrame (Thread thread, long frameID) + throws JdwpException; + + /** + * Returns the number of frames in the thread's stack + * + * @param thread the thread for which to get a frame count + * @return the number of frames in the thread's stack + */ + public static native int getFrameCount (Thread thread) + throws JdwpException; + + + /** + * Returns the status of a thread + * + * @param thread the thread for which to get status + * @return integer status of the thread + * @see JdwpConstants.ThreadStatus + */ + public static native int getThreadStatus (Thread thread) + throws JdwpException; + + /** + * Returns a list of all classes which this class loader has been + * requested to load + * + * @param cl the class loader + * @return a list of all visible classes + */ + public static native ArrayList getLoadRequests (ClassLoader cl) + throws JdwpException; + + /** + * Executes a method in the virtual machine. The thread must already + * be suspended by a previous event. When the method invocation is + * complete, the thread (or all threads if INVOKE_SINGLE_THREADED is + * not set in options) must be suspended before this method returns. + * + * @param obj instance in which to invoke method (null for static) + * @param thread the thread in which to invoke the method + * @param clazz the class in which the method is defined + * @param method the method to invoke + * @param values arguments to pass to method + * @param options invocation options + * @return a result object containing the results of the invocation + */ + public static native MethodResult executeMethod (Object obj, Thread thread, + Class clazz, VMMethod method, + Value[] values, + int options) + throws JdwpException; + + /** + * "Returns the name of source file in which a reference type was declared" + * + * @param clazz the class for which to return a source file + * @return a string containing the source file name; "no path information + * for the file is included" + */ + public static native String getSourceFile (Class clazz) + throws JdwpException; + + /** + * Register a request from the debugger + * + * Virtual machines have two options. Either do nothing and allow + * the event manager to take care of the request (useful for broadcast-type + * events like class prepare/load/unload, thread start/end, etc.) + * or do some internal work to set up the event notification (useful for + * execution-related events like breakpoints, single-stepping, etc.). + */ + public static native void registerEvent (EventRequest request) + throws JdwpException; + + /** + * Unregisters the given request + * + * @param request the request to unregister + */ + public static native void unregisterEvent (EventRequest request) + throws JdwpException; + + + /** + * Clear all events of the given kind + * + * @param kind the type of events to clear + */ + 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/event/BreakpointEvent.h b/libjava/gnu/classpath/jdwp/event/BreakpointEvent.h new file mode 100644 index 000000000..3a8bfd13f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/BreakpointEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_BreakpointEvent__ +#define __gnu_classpath_jdwp_event_BreakpointEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class BreakpointEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::BreakpointEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + BreakpointEvent(::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::java::lang::Object * _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_BreakpointEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/ClassPrepareEvent.h b/libjava/gnu/classpath/jdwp/event/ClassPrepareEvent.h new file mode 100644 index 000000000..35d24ea99 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ClassPrepareEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ClassPrepareEvent__ +#define __gnu_classpath_jdwp_event_ClassPrepareEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ClassPrepareEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ClassPrepareEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ClassPrepareEvent(::java::lang::Thread *, ::java::lang::Class *, jint); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::java::lang::Class * _class; + jint _status; +public: + static const jint STATUS_VERIFIED = 1; + static const jint STATUS_PREPARED = 2; + static const jint STATUS_INITIALIZED = 4; + static const jint STATUS_ERROR = 8; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ClassPrepareEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/ClassUnloadEvent.h b/libjava/gnu/classpath/jdwp/event/ClassUnloadEvent.h new file mode 100644 index 000000000..35447905d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ClassUnloadEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ClassUnloadEvent__ +#define __gnu_classpath_jdwp_event_ClassUnloadEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ClassUnloadEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ClassUnloadEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ClassUnloadEvent(::java::lang::String *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _signature; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ClassUnloadEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/Event.h b/libjava/gnu/classpath/jdwp/event/Event.h new file mode 100644 index 000000000..132d6b50d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/Event.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_Event__ +#define __gnu_classpath_jdwp_event_Event__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + class EventRequest; + } + namespace transport + { + class JdwpPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::event::Event : public ::java::lang::Object +{ + +public: + Event(jbyte); + virtual jbyte getEventKind(); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *) = 0; +public: + virtual ::java::lang::Object * getParameter(jint) = 0; + static ::gnu::classpath::jdwp::transport::JdwpPacket * toPacket(::java::io::DataOutputStream *, JArray< ::gnu::classpath::jdwp::event::Event * > *, JArray< ::gnu::classpath::jdwp::event::EventRequest * > *, jbyte); +private: + static void _toData(::java::io::DataOutputStream *, ::gnu::classpath::jdwp::event::Event *, ::gnu::classpath::jdwp::event::EventRequest *); +public: + static const jint EVENT_CLASS = 1; + static const jint EVENT_THREAD = 2; + static const jint EVENT_LOCATION = 3; + static const jint EVENT_INSTANCE = 4; + static const jint EVENT_FIELD = 5; + static const jint EVENT_EXCEPTION_CLASS = 6; + static const jint EVENT_EXCEPTION_CAUGHT = 7; +private: + jbyte __attribute__((aligned(__alignof__( ::java::lang::Object)))) _eventKind; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_Event__ diff --git a/libjava/gnu/classpath/jdwp/event/EventManager.h b/libjava/gnu/classpath/jdwp/event/EventManager.h new file mode 100644 index 000000000..45b47622c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/EventManager.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_EventManager__ +#define __gnu_classpath_jdwp_event_EventManager__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + class EventManager; + class EventRequest; + } + } + } + } +} + +class gnu::classpath::jdwp::event::EventManager : public ::java::lang::Object +{ + +public: + static ::gnu::classpath::jdwp::event::EventManager * getDefault(); +private: + EventManager(); +public: + virtual JArray< ::gnu::classpath::jdwp::event::EventRequest * > * getEventRequests(::gnu::classpath::jdwp::event::Event *); + virtual void requestEvent(::gnu::classpath::jdwp::event::EventRequest *); + virtual void deleteRequest(jbyte, jint); + virtual void clearRequests(jbyte); + virtual ::gnu::classpath::jdwp::event::EventRequest * getRequest(jbyte, jint); + virtual ::java::util::Collection * getRequests(jbyte); +private: + static ::gnu::classpath::jdwp::event::EventManager * _instance; + ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _requests; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_EventManager__ diff --git a/libjava/gnu/classpath/jdwp/event/EventRequest.h b/libjava/gnu/classpath/jdwp/event/EventRequest.h new file mode 100644 index 000000000..3a493a7c8 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/EventRequest.h @@ -0,0 +1,75 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_EventRequest__ +#define __gnu_classpath_jdwp_event_EventRequest__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + class EventRequest; + namespace filters + { + class IEventFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::EventRequest : public ::java::lang::Object +{ + +public: + EventRequest(jbyte, jbyte); + EventRequest(jint, jbyte, jbyte); + virtual void addFilter(::gnu::classpath::jdwp::event::filters::IEventFilter *); + virtual ::java::util::Collection * getFilters(); + virtual jbyte getSuspendPolicy(); + virtual jint getId(); + virtual void setId(jint); + virtual jbyte getEventKind(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); + static const jbyte EVENT_SINGLE_STEP = 1; + static const jbyte EVENT_BREAKPOINT = 2; + static const jbyte EVENT_FRAME_POP = 3; + static const jbyte EVENT_EXCEPTION = 4; + static const jbyte EVENT_USER_DEFINED = 5; + static const jbyte EVENT_THREAD_START = 6; + static const jbyte EVENT_THREAD_END = 7; + static const jbyte EVENT_CLASS_PREPARE = 8; + static const jbyte EVENT_CLASS_UNLOAD = 9; + static const jbyte EVENT_CLASS_LOAD = 10; + static const jbyte EVENT_FIELD_ACCESS = 20; + static const jbyte EVENT_FIELD_MODIFY = 21; + static const jbyte EVENT_METHOD_ENTRY = 40; + static const jbyte EVENT_METHOD_EXIT = 41; + static const jbyte EVENT_VM_INIT = 90; + static const jbyte EVENT_VM_DEATH = 99; + static const jbyte SUSPEND_NONE = 0; + static const jbyte SUSPEND_THREAD = 1; + static const jbyte SUSPEND_ALL = 2; +private: + static jint _last_id; + static ::java::lang::Object * _idLock; + ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _filters; + jint _id; + jbyte _suspendPolicy; + jbyte _kind; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_EventRequest__ diff --git a/libjava/gnu/classpath/jdwp/event/ExceptionEvent.h b/libjava/gnu/classpath/jdwp/event/ExceptionEvent.h new file mode 100644 index 000000000..02745b631 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ExceptionEvent.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ExceptionEvent__ +#define __gnu_classpath_jdwp_event_ExceptionEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ExceptionEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ExceptionEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ExceptionEvent(::java::lang::Throwable *, ::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Class *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); + virtual void setCatchLoc(::gnu::classpath::jdwp::util::Location *); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _instance; + ::java::lang::Throwable * _exception; + ::java::lang::Thread * _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::gnu::classpath::jdwp::util::Location * _catchLocation; + ::java::lang::Class * _klass; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ExceptionEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/MethodEntryEvent.h b/libjava/gnu/classpath/jdwp/event/MethodEntryEvent.h new file mode 100644 index 000000000..cb9c272b7 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/MethodEntryEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_MethodEntryEvent__ +#define __gnu_classpath_jdwp_event_MethodEntryEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class MethodEntryEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::MethodEntryEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + MethodEntryEvent(::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::java::lang::Object * _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_MethodEntryEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/MethodExitEvent.h b/libjava/gnu/classpath/jdwp/event/MethodExitEvent.h new file mode 100644 index 000000000..89b01537e --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/MethodExitEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_MethodExitEvent__ +#define __gnu_classpath_jdwp_event_MethodExitEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class MethodExitEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::MethodExitEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + MethodExitEvent(::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::java::lang::Object * _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_MethodExitEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/SingleStepEvent.h b/libjava/gnu/classpath/jdwp/event/SingleStepEvent.h new file mode 100644 index 000000000..481905888 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/SingleStepEvent.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_SingleStepEvent__ +#define __gnu_classpath_jdwp_event_SingleStepEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class SingleStepEvent; + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::SingleStepEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + SingleStepEvent(::java::lang::Thread *, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; + ::gnu::classpath::jdwp::util::Location * _location; + ::java::lang::Object * _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_SingleStepEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/ThreadEndEvent.h b/libjava/gnu/classpath/jdwp/event/ThreadEndEvent.h new file mode 100644 index 000000000..b5b964eed --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ThreadEndEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ThreadEndEvent__ +#define __gnu_classpath_jdwp_event_ThreadEndEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ThreadEndEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ThreadEndEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ThreadEndEvent(::java::lang::Thread *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ThreadEndEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/ThreadStartEvent.h b/libjava/gnu/classpath/jdwp/event/ThreadStartEvent.h new file mode 100644 index 000000000..f4f7afd6c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/ThreadStartEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_ThreadStartEvent__ +#define __gnu_classpath_jdwp_event_ThreadStartEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class ThreadStartEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::ThreadStartEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + ThreadStartEvent(::java::lang::Thread *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _thread; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_ThreadStartEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/VmDeathEvent.h b/libjava/gnu/classpath/jdwp/event/VmDeathEvent.h new file mode 100644 index 000000000..ae0b24ec2 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/VmDeathEvent.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_VmDeathEvent__ +#define __gnu_classpath_jdwp_event_VmDeathEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class VmDeathEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::VmDeathEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + VmDeathEvent(); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_VmDeathEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/VmInitEvent.h b/libjava/gnu/classpath/jdwp/event/VmInitEvent.h new file mode 100644 index 000000000..3a7db8811 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/VmInitEvent.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_VmInitEvent__ +#define __gnu_classpath_jdwp_event_VmInitEvent__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/Event.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class VmInitEvent; + } + } + } + } +} + +class gnu::classpath::jdwp::event::VmInitEvent : public ::gnu::classpath::jdwp::event::Event +{ + +public: + VmInitEvent(::java::lang::Thread *); + virtual ::java::lang::Object * getParameter(jint); +public: // actually protected + virtual void _writeData(::java::io::DataOutputStream *); +private: + ::java::lang::Thread * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::event::Event)))) _initialThread; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_VmInitEvent__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.h new file mode 100644 index 000000000..7a6796417 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ClassExcludeFilter.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ClassExcludeFilter__ +#define __gnu_classpath_jdwp_event_filters_ClassExcludeFilter__ + +#pragma interface + +#include <gnu/classpath/jdwp/event/filters/ClassMatchFilter.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ClassExcludeFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ClassExcludeFilter : public ::gnu::classpath::jdwp::event::filters::ClassMatchFilter +{ + +public: + ClassExcludeFilter(::java::lang::String *); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ClassExcludeFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ClassMatchFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ClassMatchFilter.h new file mode 100644 index 000000000..3670c26a6 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ClassMatchFilter.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ClassMatchFilter__ +#define __gnu_classpath_jdwp_event_filters_ClassMatchFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ClassMatchFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ClassMatchFilter : public ::java::lang::Object +{ + +public: + ClassMatchFilter(::java::lang::String *); + virtual ::java::lang::String * getPattern(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _pattern; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ClassMatchFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.h new file mode 100644 index 000000000..6c887abeb --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ClassOnlyFilter.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ClassOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_ClassOnlyFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ClassOnlyFilter; + } + } + namespace id + { + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ClassOnlyFilter : public ::java::lang::Object +{ + +public: + ClassOnlyFilter(::gnu::classpath::jdwp::id::ReferenceTypeId *); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getType(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ReferenceTypeId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _id; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ClassOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ConditionalFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ConditionalFilter.h new file mode 100644 index 000000000..23c5a14a2 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ConditionalFilter.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ConditionalFilter__ +#define __gnu_classpath_jdwp_event_filters_ConditionalFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ConditionalFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ConditionalFilter : public ::java::lang::Object +{ + +public: + ConditionalFilter(::java::lang::Object *); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ConditionalFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/CountFilter.h b/libjava/gnu/classpath/jdwp/event/filters/CountFilter.h new file mode 100644 index 000000000..c3db4aeb8 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/CountFilter.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_CountFilter__ +#define __gnu_classpath_jdwp_event_filters_CountFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class CountFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::CountFilter : public ::java::lang::Object +{ + +public: + CountFilter(jint); + virtual jint getCount(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _count; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_CountFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.h new file mode 100644 index 000000000..4a84d43ef --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ExceptionOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_ExceptionOnlyFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ExceptionOnlyFilter; + } + } + namespace id + { + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ExceptionOnlyFilter : public ::java::lang::Object +{ + +public: + ExceptionOnlyFilter(::gnu::classpath::jdwp::id::ReferenceTypeId *, jboolean, jboolean); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getType(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ReferenceTypeId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _refId; + jboolean _caught; + jboolean _uncaught; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ExceptionOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.h new file mode 100644 index 000000000..2f6d57772 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/FieldOnlyFilter.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_FieldOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_FieldOnlyFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class FieldOnlyFilter; + } + } + namespace id + { + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::FieldOnlyFilter : public ::java::lang::Object +{ + +public: + FieldOnlyFilter(::gnu::classpath::jdwp::id::ReferenceTypeId *, ::gnu::classpath::jdwp::id::ReferenceTypeId *); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getType(); + virtual ::gnu::classpath::jdwp::id::ReferenceTypeId * getField(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ReferenceTypeId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _refId; + ::gnu::classpath::jdwp::id::ReferenceTypeId * _fieldId; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_FieldOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/IEventFilter.h b/libjava/gnu/classpath/jdwp/event/filters/IEventFilter.h new file mode 100644 index 000000000..0723bad2d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/IEventFilter.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_IEventFilter__ +#define __gnu_classpath_jdwp_event_filters_IEventFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class IEventFilter; + } + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::IEventFilter : public ::java::lang::Object +{ + +public: + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_classpath_jdwp_event_filters_IEventFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.h new file mode 100644 index 000000000..3b5aedf4b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_InstanceOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_InstanceOnlyFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class InstanceOnlyFilter; + } + } + namespace id + { + class ObjectId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::InstanceOnlyFilter : public ::java::lang::Object +{ + +public: + InstanceOnlyFilter(::gnu::classpath::jdwp::id::ObjectId *); + virtual ::gnu::classpath::jdwp::id::ObjectId * getInstance(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ObjectId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _instance; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_InstanceOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.h new file mode 100644 index 000000000..e5e0da92c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/LocationOnlyFilter.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_LocationOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_LocationOnlyFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class LocationOnlyFilter; + } + } + namespace util + { + class Location; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::LocationOnlyFilter : public ::java::lang::Object +{ + +public: + LocationOnlyFilter(::gnu::classpath::jdwp::util::Location *); + virtual ::gnu::classpath::jdwp::util::Location * getLocation(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::util::Location * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _location; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_LocationOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/StepFilter.h b/libjava/gnu/classpath/jdwp/event/filters/StepFilter.h new file mode 100644 index 000000000..c434ae142 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/StepFilter.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_StepFilter__ +#define __gnu_classpath_jdwp_event_filters_StepFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class StepFilter; + } + } + namespace id + { + class ThreadId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::StepFilter : public ::java::lang::Object +{ + +public: + StepFilter(::gnu::classpath::jdwp::id::ThreadId *, jint, jint); + virtual ::gnu::classpath::jdwp::id::ThreadId * getThread(); + virtual jint getSize(); + virtual jint getDepth(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ThreadId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _tid; + jint _size; + jint _depth; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_StepFilter__ diff --git a/libjava/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.h b/libjava/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.h new file mode 100644 index 000000000..0c1a6eec4 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_event_filters_ThreadOnlyFilter__ +#define __gnu_classpath_jdwp_event_filters_ThreadOnlyFilter__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + namespace filters + { + class ThreadOnlyFilter; + } + } + namespace id + { + class ThreadId; + } + } + } + } +} + +class gnu::classpath::jdwp::event::filters::ThreadOnlyFilter : public ::java::lang::Object +{ + +public: + ThreadOnlyFilter(::gnu::classpath::jdwp::id::ThreadId *); + virtual ::gnu::classpath::jdwp::id::ThreadId * getThread(); + virtual jboolean matches(::gnu::classpath::jdwp::event::Event *); +private: + ::gnu::classpath::jdwp::id::ThreadId * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _tid; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_event_filters_ThreadOnlyFilter__ diff --git a/libjava/gnu/classpath/jdwp/exception/AbsentInformationException.h b/libjava/gnu/classpath/jdwp/exception/AbsentInformationException.h new file mode 100644 index 000000000..bb4c69955 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/AbsentInformationException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_AbsentInformationException__ +#define __gnu_classpath_jdwp_exception_AbsentInformationException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class AbsentInformationException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::AbsentInformationException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + AbsentInformationException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_AbsentInformationException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidClassException.h b/libjava/gnu/classpath/jdwp/exception/InvalidClassException.h new file mode 100644 index 000000000..fb6028f79 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidClassException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidClassException__ +#define __gnu_classpath_jdwp_exception_InvalidClassException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidClassException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidClassException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidClassException(jlong); + InvalidClassException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidClassException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidClassLoaderException.h b/libjava/gnu/classpath/jdwp/exception/InvalidClassLoaderException.h new file mode 100644 index 000000000..201b5db3b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidClassLoaderException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidClassLoaderException__ +#define __gnu_classpath_jdwp_exception_InvalidClassLoaderException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidClassLoaderException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidClassLoaderException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidClassLoaderException(jlong); + InvalidClassLoaderException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidClassLoaderException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidCountException.h b/libjava/gnu/classpath/jdwp/exception/InvalidCountException.h new file mode 100644 index 000000000..b5bfea3d7 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidCountException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidCountException__ +#define __gnu_classpath_jdwp_exception_InvalidCountException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidCountException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidCountException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidCountException(jint); + InvalidCountException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidCountException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidEventTypeException.h b/libjava/gnu/classpath/jdwp/exception/InvalidEventTypeException.h new file mode 100644 index 000000000..e5e7d1292 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidEventTypeException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidEventTypeException__ +#define __gnu_classpath_jdwp_exception_InvalidEventTypeException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidEventTypeException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidEventTypeException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidEventTypeException(jbyte); + InvalidEventTypeException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidEventTypeException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidFieldException.h b/libjava/gnu/classpath/jdwp/exception/InvalidFieldException.h new file mode 100644 index 000000000..31ebf4ac1 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidFieldException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidFieldException__ +#define __gnu_classpath_jdwp_exception_InvalidFieldException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidFieldException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidFieldException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidFieldException(jlong); + InvalidFieldException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidFieldException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidFrameException.h b/libjava/gnu/classpath/jdwp/exception/InvalidFrameException.h new file mode 100644 index 000000000..abe84e0e4 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidFrameException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidFrameException__ +#define __gnu_classpath_jdwp_exception_InvalidFrameException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidFrameException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidFrameException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidFrameException(jlong); + InvalidFrameException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidFrameException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidLocationException.h b/libjava/gnu/classpath/jdwp/exception/InvalidLocationException.h new file mode 100644 index 000000000..8d44f50bc --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidLocationException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidLocationException__ +#define __gnu_classpath_jdwp_exception_InvalidLocationException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidLocationException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidLocationException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidLocationException(); + InvalidLocationException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidLocationException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidMethodException.h b/libjava/gnu/classpath/jdwp/exception/InvalidMethodException.h new file mode 100644 index 000000000..c6d44ca57 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidMethodException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidMethodException__ +#define __gnu_classpath_jdwp_exception_InvalidMethodException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidMethodException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidMethodException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidMethodException(jlong); + InvalidMethodException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidMethodException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidObjectException.h b/libjava/gnu/classpath/jdwp/exception/InvalidObjectException.h new file mode 100644 index 000000000..20ea14f4f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidObjectException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidObjectException__ +#define __gnu_classpath_jdwp_exception_InvalidObjectException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidObjectException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidObjectException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidObjectException(jlong); + InvalidObjectException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidObjectException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h b/libjava/gnu/classpath/jdwp/exception/InvalidSlotException.h new file mode 100644 index 000000000..4582dac59 --- /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/InvalidStringException.h b/libjava/gnu/classpath/jdwp/exception/InvalidStringException.h new file mode 100644 index 000000000..b31ef702b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidStringException.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidStringException__ +#define __gnu_classpath_jdwp_exception_InvalidStringException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidStringException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidStringException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidStringException(::java::lang::String *); + InvalidStringException(jlong); + InvalidStringException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidStringException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidTagException.h b/libjava/gnu/classpath/jdwp/exception/InvalidTagException.h new file mode 100644 index 000000000..f7f0f1e59 --- /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/InvalidThreadException.h b/libjava/gnu/classpath/jdwp/exception/InvalidThreadException.h new file mode 100644 index 000000000..72951401c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidThreadException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidThreadException__ +#define __gnu_classpath_jdwp_exception_InvalidThreadException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidThreadException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidThreadException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidThreadException(jlong); + InvalidThreadException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidThreadException__ diff --git a/libjava/gnu/classpath/jdwp/exception/InvalidThreadGroupException.h b/libjava/gnu/classpath/jdwp/exception/InvalidThreadGroupException.h new file mode 100644 index 000000000..c95db0220 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/InvalidThreadGroupException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_InvalidThreadGroupException__ +#define __gnu_classpath_jdwp_exception_InvalidThreadGroupException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class InvalidThreadGroupException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::InvalidThreadGroupException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + InvalidThreadGroupException(jlong); + InvalidThreadGroupException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_InvalidThreadGroupException__ diff --git a/libjava/gnu/classpath/jdwp/exception/JdwpException.h b/libjava/gnu/classpath/jdwp/exception/JdwpException.h new file mode 100644 index 000000000..04869f2e4 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/JdwpException.h @@ -0,0 +1,40 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_JdwpException__ +#define __gnu_classpath_jdwp_exception_JdwpException__ + +#pragma interface + +#include <java/lang/Exception.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class JdwpException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::JdwpException : public ::java::lang::Exception +{ + +public: + JdwpException(jshort, ::java::lang::Throwable *); + JdwpException(jshort, ::java::lang::String *); + virtual jshort getErrorCode(); +private: + jshort __attribute__((aligned(__alignof__( ::java::lang::Exception)))) _errorCode; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_JdwpException__ diff --git a/libjava/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.h b/libjava/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.h new file mode 100644 index 000000000..035f39738 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_JdwpIllegalArgumentException__ +#define __gnu_classpath_jdwp_exception_JdwpIllegalArgumentException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class JdwpIllegalArgumentException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::JdwpIllegalArgumentException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + JdwpIllegalArgumentException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_JdwpIllegalArgumentException__ diff --git a/libjava/gnu/classpath/jdwp/exception/JdwpInternalErrorException.h b/libjava/gnu/classpath/jdwp/exception/JdwpInternalErrorException.h new file mode 100644 index 000000000..6829e26e6 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/JdwpInternalErrorException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_JdwpInternalErrorException__ +#define __gnu_classpath_jdwp_exception_JdwpInternalErrorException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class JdwpInternalErrorException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::JdwpInternalErrorException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + JdwpInternalErrorException(::java::lang::Throwable *); + JdwpInternalErrorException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_JdwpInternalErrorException__ diff --git a/libjava/gnu/classpath/jdwp/exception/NativeMethodException.h b/libjava/gnu/classpath/jdwp/exception/NativeMethodException.h new file mode 100644 index 000000000..4f7a55c1f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/NativeMethodException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_NativeMethodException__ +#define __gnu_classpath_jdwp_exception_NativeMethodException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class NativeMethodException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::NativeMethodException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + NativeMethodException(jlong); + NativeMethodException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_NativeMethodException__ diff --git a/libjava/gnu/classpath/jdwp/exception/NotImplementedException.h b/libjava/gnu/classpath/jdwp/exception/NotImplementedException.h new file mode 100644 index 000000000..4a99592fc --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/NotImplementedException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_NotImplementedException__ +#define __gnu_classpath_jdwp_exception_NotImplementedException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class NotImplementedException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::NotImplementedException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + NotImplementedException(::java::lang::String *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_NotImplementedException__ diff --git a/libjava/gnu/classpath/jdwp/exception/TypeMismatchException.h b/libjava/gnu/classpath/jdwp/exception/TypeMismatchException.h new file mode 100644 index 000000000..701bf6ebc --- /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/exception/VmDeadException.h b/libjava/gnu/classpath/jdwp/exception/VmDeadException.h new file mode 100644 index 000000000..616f735b5 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/exception/VmDeadException.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_exception_VmDeadException__ +#define __gnu_classpath_jdwp_exception_VmDeadException__ + +#pragma interface + +#include <gnu/classpath/jdwp/exception/JdwpException.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace exception + { + class VmDeadException; + } + } + } + } +} + +class gnu::classpath::jdwp::exception::VmDeadException : public ::gnu::classpath::jdwp::exception::JdwpException +{ + +public: + VmDeadException(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_exception_VmDeadException__ diff --git a/libjava/gnu/classpath/jdwp/id/ArrayId.h b/libjava/gnu/classpath/jdwp/id/ArrayId.h new file mode 100644 index 000000000..7e971e0bd --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ArrayId.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ArrayId__ +#define __gnu_classpath_jdwp_id_ArrayId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ObjectId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ArrayId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ArrayId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ArrayId(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ArrayId__ diff --git a/libjava/gnu/classpath/jdwp/id/ArrayReferenceTypeId.h b/libjava/gnu/classpath/jdwp/id/ArrayReferenceTypeId.h new file mode 100644 index 000000000..e52b1098f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ArrayReferenceTypeId.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ArrayReferenceTypeId__ +#define __gnu_classpath_jdwp_id_ArrayReferenceTypeId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ReferenceTypeId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ArrayReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ArrayReferenceTypeId : public ::gnu::classpath::jdwp::id::ReferenceTypeId +{ + +public: + ArrayReferenceTypeId(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ArrayReferenceTypeId__ diff --git a/libjava/gnu/classpath/jdwp/id/ClassLoaderId.h b/libjava/gnu/classpath/jdwp/id/ClassLoaderId.h new file mode 100644 index 000000000..162100264 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ClassLoaderId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ClassLoaderId__ +#define __gnu_classpath_jdwp_id_ClassLoaderId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ObjectId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ClassLoaderId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ClassLoaderId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ClassLoaderId(); + virtual ::java::lang::ClassLoader * getClassLoader(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ClassLoaderId__ diff --git a/libjava/gnu/classpath/jdwp/id/ClassObjectId.h b/libjava/gnu/classpath/jdwp/id/ClassObjectId.h new file mode 100644 index 000000000..5f628a465 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ClassObjectId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ClassObjectId__ +#define __gnu_classpath_jdwp_id_ClassObjectId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ObjectId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ClassObjectId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ClassObjectId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ClassObjectId(); + virtual ::java::lang::Class * getClassObject(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ClassObjectId__ diff --git a/libjava/gnu/classpath/jdwp/id/ClassReferenceTypeId.h b/libjava/gnu/classpath/jdwp/id/ClassReferenceTypeId.h new file mode 100644 index 000000000..f159722e3 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ClassReferenceTypeId.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ClassReferenceTypeId__ +#define __gnu_classpath_jdwp_id_ClassReferenceTypeId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ReferenceTypeId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ClassReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ClassReferenceTypeId : public ::gnu::classpath::jdwp::id::ReferenceTypeId +{ + +public: + ClassReferenceTypeId(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ClassReferenceTypeId__ diff --git a/libjava/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.h b/libjava/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.h new file mode 100644 index 000000000..e1f2a9179 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/InterfaceReferenceTypeId.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_InterfaceReferenceTypeId__ +#define __gnu_classpath_jdwp_id_InterfaceReferenceTypeId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ReferenceTypeId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class InterfaceReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::InterfaceReferenceTypeId : public ::gnu::classpath::jdwp::id::ReferenceTypeId +{ + +public: + InterfaceReferenceTypeId(); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_InterfaceReferenceTypeId__ diff --git a/libjava/gnu/classpath/jdwp/id/JdwpId.h b/libjava/gnu/classpath/jdwp/id/JdwpId.h new file mode 100644 index 000000000..67e8c2c53 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/JdwpId.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_JdwpId__ +#define __gnu_classpath_jdwp_id_JdwpId__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class JdwpId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::JdwpId : public ::java::lang::Object +{ + +public: + JdwpId(jbyte); + virtual void setId(jlong); + virtual jlong getId(); + virtual ::java::lang::ref::SoftReference * getReference(); + virtual void setReference(::java::lang::ref::SoftReference *); + virtual jboolean equals(::gnu::classpath::jdwp::id::JdwpId *); + virtual void write(::java::io::DataOutputStream *) = 0; + virtual void writeTagged(::java::io::DataOutputStream *); + static const jint SIZE = 8; +public: // actually protected + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) _id; +private: + jbyte _tag; +public: // actually protected + ::java::lang::ref::SoftReference * _reference; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_JdwpId__ diff --git a/libjava/gnu/classpath/jdwp/id/NullObjectId.h b/libjava/gnu/classpath/jdwp/id/NullObjectId.h new file mode 100644 index 000000000..6231783b5 --- /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/id/ObjectId.h b/libjava/gnu/classpath/jdwp/id/ObjectId.h new file mode 100644 index 000000000..724d92103 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ObjectId.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ObjectId__ +#define __gnu_classpath_jdwp_id_ObjectId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/JdwpId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ObjectId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ObjectId : public ::gnu::classpath::jdwp::id::JdwpId +{ + +public: + ObjectId(); + ObjectId(jbyte); + virtual ::java::lang::Object * getObject(); + virtual void write(::java::io::DataOutputStream *); + virtual void disableCollection(); + virtual void enableCollection(); + static ::java::lang::Class * typeClass; +private: + ::java::lang::Object * __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::id::JdwpId)))) _handle; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ObjectId__ diff --git a/libjava/gnu/classpath/jdwp/id/ReferenceTypeId.h b/libjava/gnu/classpath/jdwp/id/ReferenceTypeId.h new file mode 100644 index 000000000..0d8a88481 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ReferenceTypeId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ReferenceTypeId__ +#define __gnu_classpath_jdwp_id_ReferenceTypeId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/JdwpId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ReferenceTypeId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ReferenceTypeId : public ::gnu::classpath::jdwp::id::JdwpId +{ + +public: + ReferenceTypeId(jbyte); + virtual ::java::lang::Class * getType(); + virtual void write(::java::io::DataOutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ReferenceTypeId__ diff --git a/libjava/gnu/classpath/jdwp/id/StringId.h b/libjava/gnu/classpath/jdwp/id/StringId.h new file mode 100644 index 000000000..901df2809 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/StringId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_StringId__ +#define __gnu_classpath_jdwp_id_StringId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ObjectId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class StringId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::StringId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + StringId(); + virtual ::java::lang::String * getString(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_StringId__ diff --git a/libjava/gnu/classpath/jdwp/id/ThreadGroupId.h b/libjava/gnu/classpath/jdwp/id/ThreadGroupId.h new file mode 100644 index 000000000..3f6b8f9e4 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ThreadGroupId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ThreadGroupId__ +#define __gnu_classpath_jdwp_id_ThreadGroupId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ObjectId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ThreadGroupId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ThreadGroupId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ThreadGroupId(); + virtual ::java::lang::ThreadGroup * getThreadGroup(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ThreadGroupId__ diff --git a/libjava/gnu/classpath/jdwp/id/ThreadId.h b/libjava/gnu/classpath/jdwp/id/ThreadId.h new file mode 100644 index 000000000..ed6259205 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/id/ThreadId.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_id_ThreadId__ +#define __gnu_classpath_jdwp_id_ThreadId__ + +#pragma interface + +#include <gnu/classpath/jdwp/id/ObjectId.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace id + { + class ThreadId; + } + } + } + } +} + +class gnu::classpath::jdwp::id::ThreadId : public ::gnu::classpath::jdwp::id::ObjectId +{ + +public: + ThreadId(); + virtual ::java::lang::Thread * getThread(); + static ::java::lang::Class * typeClass; + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_id_ThreadId__ diff --git a/libjava/gnu/classpath/jdwp/natVMFrame.cc b/libjava/gnu/classpath/jdwp/natVMFrame.cc new file mode 100644 index 000000000..6f2d52332 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/natVMFrame.cc @@ -0,0 +1,338 @@ +// natFrame.cc -- native support for VMFrame.java + +/* Copyright (C) 2006, 2007 Free Software Foundation + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +#include <config.h> +#include <gcj/cni.h> +#include <jvm.h> +#include <jvmti.h> +#include "jvmti-int.h" + +#include <java-interp.h> + +#include <gnu/classpath/jdwp/VMFrame.h> +#include <gnu/classpath/jdwp/VMVirtualMachine.h> +#include <gnu/classpath/jdwp/exception/InvalidFrameException.h> +#include <gnu/classpath/jdwp/exception/InvalidSlotException.h> +#include <gnu/classpath/jdwp/exception/InvalidThreadException.h> +#include <gnu/classpath/jdwp/exception/JdwpInternalErrorException.h> +#include <gnu/classpath/jdwp/exception/TypeMismatchException.h> +#include <gnu/classpath/jdwp/util/NullObject.h> +#include <gnu/classpath/jdwp/value/ArrayValue.h> +#include <gnu/classpath/jdwp/value/ByteValue.h> +#include <gnu/classpath/jdwp/value/BooleanValue.h> +#include <gnu/classpath/jdwp/value/CharValue.h> +#include <gnu/classpath/jdwp/value/DoubleValue.h> +#include <gnu/classpath/jdwp/value/FloatValue.h> +#include <gnu/classpath/jdwp/value/IntValue.h> +#include <gnu/classpath/jdwp/value/LongValue.h> +#include <gnu/classpath/jdwp/value/ObjectValue.h> +#include <gnu/classpath/jdwp/value/ShortValue.h> +#include <gnu/classpath/jdwp/value/Value.h> +#include <gnu/classpath/jdwp/value/VoidValue.h> + +using namespace java::lang; +using namespace gnu::classpath::jdwp; +using namespace gnu::classpath::jdwp::exception; + + +// All the jvmti GetLocalXX and SetLocalXX functions return the same potential +// errors, so this function handles them all and throws the appropriate JDWP +// exception. +static void +checkJVMTIError (jvmtiEnv *env, jthread thread, jvmtiError jerr, jint slot, + jbyte sig) +{ + if (jerr != JVMTI_ERROR_NONE) + { + char *error; + env->GetErrorName (jerr, &error); + String *msg = reinterpret_cast<String *> (JvNewStringUTF (error)); + env->Deallocate ((unsigned char *) error); + + if (jerr == JVMTI_ERROR_INVALID_THREAD) + throw new InvalidThreadException ((jlong) thread); + else if (jerr == JVMTI_ERROR_NO_MORE_FRAMES) + throw new InvalidFrameException (msg); + else if (jerr == JVMTI_ERROR_INVALID_SLOT) + throw new InvalidSlotException (slot); + else if (jerr == JVMTI_ERROR_TYPE_MISMATCH) + throw new TypeMismatchException (sig); + else + throw new JdwpInternalErrorException (msg); + } +} + + +static jobject +getObjectJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, jbyte sig) +{ + jobject value; + jvmtiError jerr = env->GetLocalObject (thread, depth, slot, &value); + + checkJVMTIError (env, thread, jerr, slot, sig); + + return value; +} + +static void +setObjectJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, + jbyte sig, jobject value) +{ + if (value->getClass ()->isAssignableFrom (&util::NullObject::class$)) + value = NULL; + + jvmtiError jerr = env->SetLocalObject (thread, depth, slot, value); + + checkJVMTIError (env, thread, jerr, slot, sig); +} + +static jint +getIntJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, jbyte sig) +{ + jint value; + jvmtiError jerr = env->GetLocalInt (thread, depth, slot, &value); + + checkJVMTIError (env, thread, jerr, slot, sig); + return value; +} + +static void +setIntJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, jbyte sig, + jint value) +{ + jvmtiError jerr = env->SetLocalInt (thread, depth, slot, value); + + checkJVMTIError (env, thread, jerr, slot, sig); +} + +static jlong +getLongJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, jbyte sig) +{ + jlong value; + jvmtiError jerr = env->GetLocalLong (thread, depth, slot, &value); + + checkJVMTIError (env, thread, jerr, slot, sig); + + return value; +} + +static void +setLongJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, jbyte sig, + jlong value) +{ + jvmtiError jerr = env->SetLocalLong (thread, depth, slot, value); + + checkJVMTIError (env, thread, jerr, slot, sig); +} + +static jfloat +getFloatJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, jbyte sig) +{ + jfloat value; + jvmtiError jerr = env->GetLocalFloat (thread, depth, slot, &value); + + checkJVMTIError (env, thread, jerr, slot, sig); + + return value; +} + +static void +setFloatJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, jbyte sig, + jfloat value) +{ + jvmtiError jerr = env->SetLocalFloat (thread, depth, slot, value); + + checkJVMTIError (env, thread, jerr, slot, sig); +} + +static jdouble +getDoubleJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, + jbyte sig) +{ + jdouble value; + jvmtiError jerr = env->GetLocalDouble (thread, depth, slot, &value); + + checkJVMTIError (env, thread, jerr, slot, sig); + + return value; +} + +static void +setDoubleJVMTI (jvmtiEnv *env, jthread thread, jint slot, jint depth, + jbyte sig, jdouble value) +{ + jvmtiError jerr = env->SetLocalDouble (thread, depth, slot, value); + + checkJVMTIError (env, thread, jerr, slot, sig); +} + +// This is necessary since JVMTI requires a stack depth as a parameter in all +// its local variable functions. Since JDWP needs frameids, we have to run +// through the call stack to translate these ids into the parameters JVMTI +// wants. +static jint +getFrameDepth (_Jv_Frame *frame) +{ + jint depth = 0; + _Jv_Frame *top_frame = (_Jv_Frame *) frame->thread->frame; + jint num_frames = VMVirtualMachine::getFrameCount (frame->thread); + + while (frame != top_frame) + { + top_frame = top_frame->next; + depth++; + + if (depth >= num_frames || top_frame == NULL) + throw new InvalidFrameException ((jlong) frame); + } + + return depth; +} + +using namespace gnu::classpath::jdwp::value; + +Value * +gnu::classpath::jdwp::VMFrame::getValue (jint slot, jbyte sig) +{ + _Jv_Frame *frame = reinterpret_cast<_Jv_Frame *> (id); + jint depth = getFrameDepth (frame); + jthread thread = reinterpret_cast<jthread> (frame->thread); + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + + Value *value = NULL; + + switch (sig) + { + case 'B': + value = new ByteValue ((jbyte) getIntJVMTI (env, thread, slot, depth, + sig)); + break; + case 'Z': + value = new BooleanValue ((jboolean) getIntJVMTI (env, thread, slot, + depth, sig)); + break; + case 'C': + value = new CharValue ((jchar) getIntJVMTI (env, thread, slot, depth, + sig)); + break; + case 'S': + value = new ShortValue ((jshort) getIntJVMTI (env, thread, slot, depth, + sig)); + break; + case 'I': + value = new IntValue (getIntJVMTI (env, thread, slot, depth, sig)); + break; + case 'J': + value = new LongValue (getLongJVMTI (env, thread, slot, depth, sig)); + break; + case 'F': + value = new FloatValue (getFloatJVMTI (env, thread, slot, depth, sig)); + break; + case 'D': + value = new DoubleValue (getDoubleJVMTI (env, thread, slot, depth, sig)); + break; + case 'V': + value = new VoidValue (); + break; + case '[': + { + Object *obj = getObjectJVMTI (env, thread, slot, depth, sig); + if (obj == NULL) + obj = new util::NullObject (); + value = new ArrayValue (obj); + break; + } + default: + Object *obj = getObjectJVMTI (env, thread, slot, depth, sig); + if (obj == NULL) + obj = new util::NullObject (); + value = new ObjectValue (obj); + break; + } + + return value; +} + +void +gnu::classpath::jdwp::VMFrame::setValue (jint slot, Value* value) +{ + jbyte sig = value->getTag (); + + _Jv_Frame *frame = reinterpret_cast<_Jv_Frame *> (id); + jint depth = getFrameDepth (frame); + jthread thread = reinterpret_cast<jthread> (frame->thread); + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + + switch (sig) + { + case 'B': + { + ByteValue *val = reinterpret_cast<ByteValue *> (value); + setIntJVMTI (env, thread, slot, depth, sig, (jint) val->getValue ()); + break; + } + case 'Z': + { + BooleanValue *val = reinterpret_cast<BooleanValue *> (value); + setIntJVMTI (env, thread, slot, depth, sig, (jint) val->getValue ()); + break; + } + case 'C': + { + CharValue *val = reinterpret_cast<CharValue *> (value); + setIntJVMTI (env, thread, slot, depth, sig, (jint) val->getValue ()); + break; + } + case 'S': + { + ShortValue *val = reinterpret_cast<ShortValue *> (value); + setIntJVMTI (env, thread, slot, depth, sig, (jint) val->getValue ()); + break; + } + case 'I': + { + IntValue *val = reinterpret_cast<IntValue *> (value); + setIntJVMTI (env, thread, slot, depth, sig, val->getValue ()); + break; + } + case 'J': + { + LongValue *val = reinterpret_cast<LongValue *> (value); + setLongJVMTI (env, thread, slot, depth, sig, val->getValue ()); + break; + } + case 'F': + { + FloatValue *val = reinterpret_cast<FloatValue *> (value); + setFloatJVMTI (env, thread, slot, depth, sig, val->getValue ()); + break; + } + case 'D': + { + DoubleValue *val = reinterpret_cast<DoubleValue *> (value); + setDoubleJVMTI (env, thread, slot, depth, sig, val->getValue ()); + break; + } + case 'V': + break; + case '[': + { + ArrayValue *val = reinterpret_cast<ArrayValue *> (value); + setObjectJVMTI (env, thread, slot, depth, sig, val->getObject ()); + break; + } + default: + { + ObjectValue *val = reinterpret_cast<ObjectValue *> (value); + setObjectJVMTI (env, thread, slot, depth, sig, val->getObject()); + break; + } + } +} diff --git a/libjava/gnu/classpath/jdwp/natVMMethod.cc b/libjava/gnu/classpath/jdwp/natVMMethod.cc new file mode 100644 index 000000000..1cea54dae --- /dev/null +++ b/libjava/gnu/classpath/jdwp/natVMMethod.cc @@ -0,0 +1,191 @@ +// natVMMethod.cc -- native support for VMMethod + +/* Copyright (C) 2006, 2007 Free Software Foundation + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +#include <config.h> +#include <gcj/cni.h> +#include <java-interp.h> +#include <jvmti.h> +#include "jvmti-int.h" + +#include <java/lang/reflect/Modifier.h> +#include <gnu/classpath/jdwp/VMMethod.h> +#include <gnu/classpath/jdwp/exception/AbsentInformationException.h> +#include <gnu/classpath/jdwp/exception/InvalidMethodException.h> +#include <gnu/classpath/jdwp/exception/JdwpInternalErrorException.h> +#include <gnu/classpath/jdwp/util/LineTable.h> +#include <gnu/classpath/jdwp/util/VariableTable.h> + +using namespace java::lang; + +#define CHECK_INTERP_CLASS() \ +do \ + { \ + if (!_Jv_IsInterpretedClass (getDeclaringClass ())) \ + { \ + ::java::lang::String *msg = JvNewStringLatin1 ("native class"); \ + throw new exception::JdwpInternalErrorException (msg); \ + } \ + } \ +while (0) + +jstring +gnu::classpath::jdwp::VMMethod::getName () +{ + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + jmethodID method = reinterpret_cast<jmethodID> (_methodId); + char *name; + env->GetMethodName (method, &name, NULL, NULL); + jstring string = JvNewStringUTF (name); + env->Deallocate (reinterpret_cast<unsigned char *> (name)); + return string; +} + +jstring +gnu::classpath::jdwp::VMMethod::getSignature () +{ + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + jmethodID method = reinterpret_cast<jmethodID> (_methodId); + char *signature; + env->GetMethodName (method, NULL, &signature, NULL); + jstring string = JvNewStringUTF (signature); + env->Deallocate (reinterpret_cast<unsigned char *> (signature)); + return string; +} + +jint +gnu::classpath::jdwp::VMMethod::getModifiers () +{ + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + jmethodID method = reinterpret_cast<jmethodID> (_methodId); + jint flags; + env->GetMethodModifiers (method, &flags); + + // If this class is compiled, as far as JDWP is concerned, its methods are + // native. This will set the native flag for these methods. + if (!_Jv_IsInterpretedClass (getDeclaringClass ())) + flags |= ::java::lang::reflect::Modifier::NATIVE; + + return flags; +} + +gnu::classpath::jdwp::util::LineTable * +gnu::classpath::jdwp::VMMethod::getLineTable () +{ + CHECK_INTERP_CLASS (); + + jmethodID desired_method = reinterpret_cast<jmethodID> (_methodId); + + _Jv_MethodBase *theMethod + = _Jv_FindInterpreterMethod (getDeclaringClass (), desired_method); + + if (theMethod == NULL) + { + // this should not happen + ::java::lang::String *msg + = JvNewStringLatin1 ("could not find method in class"); + throw new exception::JdwpInternalErrorException (msg); + } + + if (::java::lang::reflect::Modifier::isNative (desired_method->accflags)) + { + jintArray lines = JvNewIntArray (0); + jlongArray indices = JvNewLongArray (0); + return new util::LineTable (-1, -1, lines, indices); + } + + // get the linetable + _Jv_InterpMethod *imeth = reinterpret_cast<_Jv_InterpMethod *> (theMethod); + jlong start; + jlong end; + jintArray lines; + jlongArray indices; + imeth->get_line_table (start, end, lines, indices); + return new util::LineTable (start, end, lines, indices); +} + + +gnu::classpath::jdwp::util::VariableTable* +gnu::classpath::jdwp::VMMethod::getVariableTable () +{ + using namespace gnu::classpath::jdwp::util; + + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + + CHECK_INTERP_CLASS (); + + jmethodID meth = reinterpret_cast<jmethodID> (_methodId); + jvmtiLocalVariableEntry *var_table; + jint num_slots, args_len; + + jvmtiError jerr = env->GetLocalVariableTable (meth, &num_slots, &var_table); + + if (jerr != JVMTI_ERROR_NONE) + goto error; + + jerr = env->GetArgumentsSize (meth, &args_len); + + if (jerr != JVMTI_ERROR_NONE) + { + error: + using namespace gnu::classpath::jdwp::exception; + char *error; + env->GetErrorName (jerr, &error); + String *msg = JvNewStringUTF (error); + env->Deallocate (reinterpret_cast<unsigned char *> (error)); + + if (jerr == JVMTI_ERROR_NATIVE_METHOD) + throw new AbsentInformationException (msg); + else if (jerr == JVMTI_ERROR_INVALID_METHODID) + throw new InvalidMethodException (_methodId); + else + throw new JdwpInternalErrorException (msg); + } + + jlongArray start_pcs = JvNewLongArray (num_slots); + jlong *start_pcs_ptr = elements (start_pcs); + jintArray lengths = JvNewIntArray (num_slots); + jint *lengths_ptr = elements (lengths); + jintArray slots = JvNewIntArray (num_slots); + jint *slots_ptr = elements (slots); + JArray<String *> *names = reinterpret_cast<JArray<String *> *> + (JvNewObjectArray (num_slots, + &String::class$, NULL)); + jstring *names_ptr = elements (names); + JArray<String *> *signatures = reinterpret_cast<JArray<String *> *> + (JvNewObjectArray (num_slots, + &String::class$, NULL)); + jstring *signatures_ptr = elements (signatures); + + // Get the information out of the JVMTI strucutre and Deallocate the strings. + for (int i = 0; i < num_slots; i++) + { + start_pcs_ptr[i] = var_table[i].start_location; + lengths_ptr[i] = var_table[i].length; + slots_ptr[i] = var_table[i].slot; + names_ptr[i] = JvNewStringUTF (var_table[i].name); + env->Deallocate (reinterpret_cast<unsigned char *> + (var_table[i].name)); + signatures_ptr[i] = JvNewStringUTF (var_table[i].signature); + env->Deallocate (reinterpret_cast<unsigned char *> + (var_table[i].signature)); + env->Deallocate (reinterpret_cast<unsigned char *> + (var_table[i].generic_signature)); + } + + // Now Deallocate the table since it's strings have already been freed. + env->Deallocate (reinterpret_cast<unsigned char *> (var_table)); + + // Create the new JDWP VariableTable to return with the now filled arrays. + VariableTable* jdwp_vtable = new VariableTable (args_len, num_slots, + start_pcs, names, signatures, + lengths, slots); + + return jdwp_vtable; +} diff --git a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc new file mode 100644 index 000000000..7bd300b79 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc @@ -0,0 +1,1159 @@ +// natVMVirtualMachine.cc - native support for VMVirtualMachine + +/* Copyright (C) 2006, 2007 Free Software Foundation + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +#include <config.h> +#include <gcj/cni.h> +#include <java-assert.h> +#include <java-interp.h> +#include <jvm.h> +#include <jvmti.h> + +#include <java/lang/Class.h> +#include <java/lang/ClassLoader.h> +#include <java/lang/Integer.h> +#include <java/lang/String.h> +#include <java/lang/StringBuilder.h> +#include <java/lang/Thread.h> +#include <java/lang/Throwable.h> +#include <java/nio/ByteBuffer.h> +#include <java/nio/ByteBufferImpl.h> +#include <java/util/ArrayList.h> +#include <java/util/Collection.h> +#include <java/util/Hashtable.h> +#include <java/util/Iterator.h> + +#include <gnu/classpath/jdwp/Jdwp.h> +#include <gnu/classpath/jdwp/JdwpConstants$StepDepth.h> +#include <gnu/classpath/jdwp/JdwpConstants$StepSize.h> +#include <gnu/classpath/jdwp/JdwpConstants$ThreadStatus.h> +#include <gnu/classpath/jdwp/VMFrame.h> +#include <gnu/classpath/jdwp/VMMethod.h> +#include <gnu/classpath/jdwp/VMVirtualMachine.h> +#include <gnu/classpath/jdwp/event/BreakpointEvent.h> +#include <gnu/classpath/jdwp/event/ClassPrepareEvent.h> +#include <gnu/classpath/jdwp/event/ExceptionEvent.h> +#include <gnu/classpath/jdwp/event/EventManager.h> +#include <gnu/classpath/jdwp/event/EventRequest.h> +#include <gnu/classpath/jdwp/event/SingleStepEvent.h> +#include <gnu/classpath/jdwp/event/ThreadEndEvent.h> +#include <gnu/classpath/jdwp/event/ThreadStartEvent.h> +#include <gnu/classpath/jdwp/event/VmDeathEvent.h> +#include <gnu/classpath/jdwp/event/VmInitEvent.h> +#include <gnu/classpath/jdwp/event/filters/IEventFilter.h> +#include <gnu/classpath/jdwp/event/filters/LocationOnlyFilter.h> +#include <gnu/classpath/jdwp/event/filters/StepFilter.h> +#include <gnu/classpath/jdwp/exception/AbsentInformationException.h> +#include <gnu/classpath/jdwp/exception/InvalidFrameException.h> +#include <gnu/classpath/jdwp/exception/InvalidLocationException.h> +#include <gnu/classpath/jdwp/exception/InvalidMethodException.h> +#include <gnu/classpath/jdwp/exception/JdwpInternalErrorException.h> +#include <gnu/classpath/jdwp/id/ThreadId.h> +#include <gnu/classpath/jdwp/util/Location.h> +#include <gnu/classpath/jdwp/util/MethodResult.h> +#include <gnu/gcj/jvmti/Breakpoint.h> +#include <gnu/gcj/jvmti/BreakpointManager.h> + +using namespace java::lang; +using namespace gnu::classpath::jdwp::event; +using namespace gnu::classpath::jdwp::util; + +// Stepping information +struct step_info +{ + jint size; // See gnu.classpath.jdwp.JdwpConstants.StepSize + jint depth; // See gnu.classpath.jdwp.JdwpConstants.StepDepth + int stack_depth; // stack depth at start of stepping + jmethodID method; // method in which we are stepping +}; + +// Forward declarations +static jvmtiError get_linetable (jvmtiEnv *, jmethodID, jint *, + jvmtiLineNumberEntry **); +static Location *get_request_location (EventRequest *); +static gnu::classpath::jdwp::event::filters::StepFilter * +get_request_step_filter (EventRequest *); +static void handle_single_step (jvmtiEnv *, struct step_info *, jthread, + jmethodID, jlocation); +static void JNICALL jdwpBreakpointCB (jvmtiEnv *, JNIEnv *, jthread, + jmethodID, jlocation); +static void JNICALL jdwpClassPrepareCB (jvmtiEnv *, JNIEnv *, jthread, jclass); +static void JNICALL jdwpExceptionCB (jvmtiEnv *, JNIEnv *jni_env, jthread, + jmethodID, jlocation, jobject, + jmethodID, jlocation); +static void JNICALL jdwpSingleStepCB (jvmtiEnv *, JNIEnv *, jthread, + jmethodID, jlocation); +static void JNICALL jdwpThreadEndCB (jvmtiEnv *, JNIEnv *, jthread); +static void JNICALL jdwpThreadStartCB (jvmtiEnv *, JNIEnv *, jthread); +static void JNICALL jdwpVMDeathCB (jvmtiEnv *, JNIEnv *); +static void JNICALL jdwpVMInitCB (jvmtiEnv *, JNIEnv *, jthread); +static void throw_jvmti_error (jvmtiError); + +#define DEFINE_CALLBACK(Cb,Event) Cb.Event = jdwp ## Event ## CB +#define DISABLE_EVENT(Event,Thread) \ + _jdwp_jvmtiEnv->SetEventNotificationMode (JVMTI_DISABLE, \ + JVMTI_EVENT_ ## Event, Thread) +#define ENABLE_EVENT(Event,Thread) \ + _jdwp_jvmtiEnv->SetEventNotificationMode (JVMTI_ENABLE, \ + JVMTI_EVENT_ ## Event, Thread) +// JVMTI environment +static jvmtiEnv *_jdwp_jvmtiEnv; + +jvmtiEnv * +_Jv_GetJDWP_JVMTIEnv (void) +{ + return _jdwp_jvmtiEnv; +} + +void +gnu::classpath::jdwp::VMVirtualMachine::initialize () +{ + _jdwp_suspend_counts = new ::java::util::Hashtable (); + _stepping_threads = new ::java::util::Hashtable (); + _event_list = new ::java::util::ArrayList (); + + JavaVM *vm = _Jv_GetJavaVM (); + 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; + DEFINE_CALLBACK (callbacks, VMInit); + _jdwp_jvmtiEnv->SetEventCallbacks (&callbacks, sizeof (callbacks)); + ENABLE_EVENT (VM_INIT, NULL); +} + +void +gnu::classpath::jdwp::VMVirtualMachine::suspendThread (Thread *thread) +{ + jint value; + Integer *count; + { + JvSynchronize dummy (_jdwp_suspend_counts); + count = reinterpret_cast<Integer *> (_jdwp_suspend_counts->get (thread)); + if (count == NULL) + { + // New -- suspend thread + value = 0; + } + else + { + // Thread already suspended + value = count->intValue (); + } + + count = Integer::valueOf (++value); + _jdwp_suspend_counts->put (thread, count); + } + + if (value == 1) + { + // Suspend the thread + jvmtiError err = _jdwp_jvmtiEnv->SuspendThread (thread); + if (err != JVMTI_ERROR_NONE) + { + using namespace gnu::gcj::runtime; + using namespace gnu::classpath::jdwp::exception; + char *reason; + _jdwp_jvmtiEnv->GetErrorName (err, &reason); + String *txt = JvNewStringLatin1 ("could not suspend thread: "); + StringBuilder *msg = new StringBuilder (txt); + msg->append (JvNewStringLatin1 (reason)); + _jdwp_jvmtiEnv->Deallocate ((unsigned char *) reason); + throw new JdwpInternalErrorException (msg->toString ()); + } + } +} + +void +gnu::classpath::jdwp::VMVirtualMachine::resumeThread (Thread *thread) +{ + jint value; + { + JvSynchronize dummy (_jdwp_suspend_counts); + Integer *count + = reinterpret_cast<Integer *> (_jdwp_suspend_counts->get (thread)); + if (count == NULL) + { + // Thread not suspended: ThreadReference.Resume says to ignore it. + return; + } + else + { + // Decrement suspend count + value = count->intValue () - 1; + } + + if (value == 0) + { + // Thread will be resumed, remove from table + _jdwp_suspend_counts->remove (thread); + } + else + { + // Thread stays suspended: record new suspend count + count = Integer::valueOf (value); + _jdwp_suspend_counts->put (thread, count); + } + } + + if (value == 0) + { + jvmtiError err = _jdwp_jvmtiEnv->ResumeThread (thread); + if (err != JVMTI_ERROR_NONE) + { + using namespace gnu::gcj::runtime; + using namespace gnu::classpath::jdwp::exception; + char *reason; + _jdwp_jvmtiEnv->GetErrorName (err, &reason); + String *txt = JvNewStringLatin1 ("could not resume thread: "); + StringBuilder *msg = new StringBuilder (txt); + msg->append (JvNewStringLatin1 (reason)); + _jdwp_jvmtiEnv->Deallocate ((unsigned char *) reason); + throw new JdwpInternalErrorException (msg->toString ()); + } + } +} + +jint +gnu::classpath::jdwp::VMVirtualMachine::getSuspendCount (Thread *thread) +{ + jint suspensions = 0; + Integer *count + = reinterpret_cast<Integer *> (_jdwp_suspend_counts->get (thread)); + if (count != NULL) + suspensions = count->intValue (); + return suspensions; +} + +void +gnu::classpath::jdwp::VMVirtualMachine::registerEvent (EventRequest *request) +{ + switch (request->getEventKind ()) + { + case EventRequest::EVENT_SINGLE_STEP: + { + Thread *thread; + filters::StepFilter *filter = get_request_step_filter (request); + if (filter == NULL) + { + // No filter specified: report every step in every + // thread. + thread = NULL; + } + else + { + // Add stepping information to list of stepping threads + thread = filter->getThread ()->getThread (); + _Jv_InterpFrame *frame + = reinterpret_cast<_Jv_InterpFrame *> (thread->interp_frame); + struct step_info *sinfo + = (struct step_info *) JvAllocBytes (sizeof (struct step_info)); + sinfo->size = filter->getSize (); + sinfo->depth = filter->getDepth (); + sinfo->stack_depth = frame->depth (); + sinfo->method = frame->self->get_method (); + _stepping_threads->put (thread, (jobject) sinfo); + } + + ENABLE_EVENT (SINGLE_STEP, thread); + } + break; + + case EventRequest::EVENT_BREAKPOINT: + { + using namespace ::gnu::gcj::jvmti; + Location *loc = get_request_location (request); + if (loc == NULL) + { + using namespace gnu::classpath::jdwp::exception; + throw new InvalidLocationException (); + } + + jlong method = loc->getMethod ()->getId (); + jlocation index = loc->getIndex (); + Breakpoint *bp = BreakpointManager::getBreakpoint (method, index); + if (bp == NULL) + { + // Breakpoint not in interpreter yet + bp = BreakpointManager::newBreakpoint (method, index); + } + else + { + // Ignore the duplicate + } + } + break; + + case EventRequest::EVENT_FRAME_POP: + break; + + case EventRequest::EVENT_EXCEPTION: + break; + + case EventRequest::EVENT_USER_DEFINED: + break; + + case EventRequest::EVENT_THREAD_START: + break; + + case EventRequest::EVENT_THREAD_END: + break; + + case EventRequest::EVENT_CLASS_PREPARE: + break; + + case EventRequest::EVENT_CLASS_LOAD: + break; + + case EventRequest::EVENT_CLASS_UNLOAD: + break; + + case EventRequest::EVENT_FIELD_ACCESS: + break; + + case EventRequest::EVENT_FIELD_MODIFY: + break; + + case EventRequest::EVENT_METHOD_ENTRY: + break; + + case EventRequest::EVENT_METHOD_EXIT: + break; + + case EventRequest::EVENT_VM_INIT: + break; + + case EventRequest::EVENT_VM_DEATH: + break; + } +} + +void +gnu::classpath::jdwp::VMVirtualMachine::unregisterEvent (EventRequest *request) +{ + switch (request->getEventKind ()) + { + case EventRequest::EVENT_SINGLE_STEP: + { + Thread *thread; + filters::StepFilter *filter = get_request_step_filter (request); + if (filter == NULL) + thread = NULL; + else + { + thread = filter->getThread ()->getThread (); + _stepping_threads->remove (thread); + } + + DISABLE_EVENT (SINGLE_STEP, thread); + } + break; + + case EventRequest::EVENT_BREAKPOINT: + { + using namespace gnu::gcj::jvmti; + ::java::util::Collection *breakpoints; + EventManager *em = EventManager::getDefault (); + breakpoints = em->getRequests (EventRequest::EVENT_BREAKPOINT); + + // Check for duplicates + int matches = 0; + Location *the_location = get_request_location (request); + + // This should not be possible: we REQUIRE a Location + // to install a breakpoint + JvAssert (the_location != NULL); + + ::java::util::Iterator *iter = breakpoints->iterator (); + while (iter->hasNext ()) + { + EventRequest *er + = reinterpret_cast<EventRequest *> (iter->next ()); + Location *loc = get_request_location (er); + JvAssert (loc != NULL); + if (loc->equals (the_location) && ++matches == 2) + { + // Short-circuit: already more than one breakpoint + return; + } + } + + if (matches == 0) + { + using namespace gnu::classpath::jdwp::exception; + jstring msg + = JvNewStringLatin1 ("attempt to remove unknown breakpoint"); + throw new JdwpInternalErrorException (msg); + } + + jlong methodId = the_location->getMethod ()->getId (); + BreakpointManager::deleteBreakpoint (methodId, + the_location->getIndex ()); + } + break; + + case EventRequest::EVENT_FRAME_POP: + break; + + case EventRequest::EVENT_EXCEPTION: + break; + + case EventRequest::EVENT_USER_DEFINED: + break; + + case EventRequest::EVENT_THREAD_START: + break; + + case EventRequest::EVENT_THREAD_END: + break; + + case EventRequest::EVENT_CLASS_PREPARE: + break; + + case EventRequest::EVENT_CLASS_LOAD: + break; + + case EventRequest::EVENT_CLASS_UNLOAD: + break; + + case EventRequest::EVENT_FIELD_ACCESS: + break; + + case EventRequest::EVENT_FIELD_MODIFY: + break; + + case EventRequest::EVENT_METHOD_ENTRY: + break; + + case EventRequest::EVENT_METHOD_EXIT: + break; + + case EventRequest::EVENT_VM_INIT: + break; + + case EventRequest::EVENT_VM_DEATH: + break; + } +} + +void +gnu::classpath::jdwp::VMVirtualMachine::clearEvents (MAYBE_UNUSED jbyte kind) +{ +} + +java::util::Collection * +gnu::classpath::jdwp::VMVirtualMachine::getAllLoadedClasses (void) +{ + using namespace ::java::util; + return (Collection *) new ArrayList (); +} + +jint +gnu::classpath::jdwp::VMVirtualMachine:: +getClassStatus (jclass klass) +{ + jint flags = 0; + jvmtiError err = _jdwp_jvmtiEnv->GetClassStatus (klass, &flags); + if (err != JVMTI_ERROR_NONE) + throw_jvmti_error (err); + + using namespace gnu::classpath::jdwp::event; + jint status = 0; + if (flags & JVMTI_CLASS_STATUS_VERIFIED) + status |= ClassPrepareEvent::STATUS_VERIFIED; + if (flags & JVMTI_CLASS_STATUS_PREPARED) + status |= ClassPrepareEvent::STATUS_PREPARED; + if (flags & JVMTI_CLASS_STATUS_ERROR) + status |= ClassPrepareEvent::STATUS_ERROR; + if (flags & JVMTI_CLASS_STATUS_INITIALIZED) + status |= ClassPrepareEvent::STATUS_INITIALIZED; + + return status; +} + +JArray<gnu::classpath::jdwp::VMMethod *> * +gnu::classpath::jdwp::VMVirtualMachine:: +getAllClassMethods (jclass klass) +{ + jint count; + jmethodID *methods; + jvmtiError err = _jdwp_jvmtiEnv->GetClassMethods (klass, &count, &methods); + if (err != JVMTI_ERROR_NONE) + throw_jvmti_error (err); + + JArray<VMMethod *> *result + = (JArray<VMMethod *> *) JvNewObjectArray (count, + &VMMethod::class$, NULL); + VMMethod **rmeth = elements (result); + for (int i = 0; i < count; ++i) + { + jlong id = reinterpret_cast<jlong> (methods[i]); + rmeth[i] = getClassMethod (klass, id); + } + + _jdwp_jvmtiEnv->Deallocate ((unsigned char *) methods); + return result; +} + +gnu::classpath::jdwp::VMMethod * +gnu::classpath::jdwp::VMVirtualMachine:: +getClassMethod (jclass klass, jlong id) +{ + jint count; + jmethodID *methods; + jvmtiError err = _jdwp_jvmtiEnv->GetClassMethods (klass, &count, &methods); + if (err != JVMTI_ERROR_NONE) + throw_jvmti_error (err); + + jmethodID meth_id = reinterpret_cast<jmethodID> (id); + + using namespace gnu::classpath::jdwp; + + // Check if this method is defined for the given class and if so return a + // VMMethod representing it. + for (int i = 0; i < count; i++) + { + if (methods[i] == meth_id) + return new VMMethod (klass, reinterpret_cast<jlong> (meth_id)); + } + + throw new exception::InvalidMethodException (id); +} + +java::util::ArrayList * +gnu::classpath::jdwp::VMVirtualMachine::getFrames (Thread *thread, jint start, + jint length) +{ + jint frame_count = getFrameCount (thread); + ::java::util::ArrayList *frame_list; + + // Calculate the max number of frames to be returned. + jint num_frames = frame_count - start; + + // Check if num_frames is valid. + if (num_frames < 0) + num_frames = 0; + + // Check if there are more than length frames left after start. + // If length ios -1 return all remaining frames. + if (length != -1 && num_frames > length) + num_frames = length; + + frame_list = new ::java::util::ArrayList (num_frames); + + _Jv_Frame *vm_frame = reinterpret_cast<_Jv_Frame *> (thread->frame); + + // Take start frames off the top of the stack + while (vm_frame != NULL && start > 0) + { + start--; + vm_frame = vm_frame->next; + } + + // Use as a counter for the number of frames returned. + num_frames = 0; + + while (vm_frame != NULL && (num_frames < length || length == -1)) + { + jlong frameId = reinterpret_cast<jlong> (vm_frame); + + VMFrame *frame = getFrame (thread, frameId); + frame_list->add (frame); + vm_frame = vm_frame->next; + num_frames++; + } + + return frame_list; +} + +gnu::classpath::jdwp::VMFrame * +gnu::classpath::jdwp::VMVirtualMachine:: +getFrame (Thread *thread, jlong frameID) +{ + using namespace gnu::classpath::jdwp::exception; + + _Jv_Frame *vm_frame = (_Jv_Frame *) thread->frame; + jint depth = 0; + _Jv_Frame *frame = reinterpret_cast<_Jv_Frame *> (frameID); + + // We need to find the stack depth of the frame, so search through the call + // stack to find it. This also checks for a valid frameID. + while (vm_frame != frame) + { + vm_frame = vm_frame->next; + depth++; + if (vm_frame == NULL) + throw new InvalidFrameException (frameID); + } + + Location *loc = NULL; + jvmtiFrameInfo info; + jvmtiError jerr; + jint num_frames; + jclass klass; + + // Get the info for the frame of interest + jerr = _jdwp_jvmtiEnv->GetStackTrace (thread, depth, 1, &info, &num_frames); + + if (jerr != JVMTI_ERROR_NONE) + throw_jvmti_error (jerr); + + jerr = _jdwp_jvmtiEnv->GetMethodDeclaringClass (info.method, &klass); + + if (jerr != JVMTI_ERROR_NONE) + throw_jvmti_error (jerr); + + VMMethod *meth + = getClassMethod (klass, reinterpret_cast<jlong> (info.method)); + + jobject this_obj; + + if (info.location == -1) + { + loc = new Location (meth, 0); + this_obj = NULL; + } + else + { + loc = new Location (meth, info.location); + _Jv_InterpFrame *iframe = reinterpret_cast<_Jv_InterpFrame *> (vm_frame); + this_obj = iframe->get_this_ptr (); + } + + return new VMFrame (thread, reinterpret_cast<jlong> (vm_frame), loc, + this_obj); +} + +jint +gnu::classpath::jdwp::VMVirtualMachine:: +getFrameCount (Thread *thread) +{ + jint frame_count; + + jvmtiError jerr = _jdwp_jvmtiEnv->GetFrameCount (thread, &frame_count); + + if (jerr != JVMTI_ERROR_NONE) + throw_jvmti_error (jerr); + + return frame_count; +} + +jint +gnu::classpath::jdwp::VMVirtualMachine:: +getThreadStatus (Thread *thread) +{ + jint thr_state, status; + + jvmtiError jerr = _jdwp_jvmtiEnv->GetThreadState (thread, &thr_state); + if (jerr != JVMTI_ERROR_NONE) + throw_jvmti_error (jerr); + + if (thr_state & JVMTI_THREAD_STATE_SLEEPING) + status = gnu::classpath::jdwp::JdwpConstants$ThreadStatus::SLEEPING; + else if (thr_state & JVMTI_THREAD_STATE_RUNNABLE) + status = gnu::classpath::jdwp::JdwpConstants$ThreadStatus::RUNNING; + else if (thr_state & JVMTI_THREAD_STATE_WAITING) + { + if (thr_state & (JVMTI_THREAD_STATE_IN_OBJECT_WAIT + | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER)) + status = gnu::classpath::jdwp::JdwpConstants$ThreadStatus::MONITOR; + else + status = gnu::classpath::jdwp::JdwpConstants$ThreadStatus::WAIT; + } + else + { + // The thread is not SLEEPING, MONITOR, or WAIT. It may, however, be + // alive but not yet started. + if (!(thr_state & (JVMTI_THREAD_STATE_ALIVE + | JVMTI_THREAD_STATE_TERMINATED))) + status = gnu::classpath::jdwp::JdwpConstants$ThreadStatus::RUNNING; + status = gnu::classpath::jdwp::JdwpConstants$ThreadStatus::ZOMBIE; + } + + return status; +} + +java::util::ArrayList * +gnu::classpath::jdwp::VMVirtualMachine:: +getLoadRequests (MAYBE_UNUSED ClassLoader *cl) +{ + return new ::java::util::ArrayList (); +} + +MethodResult * +gnu::classpath::jdwp::VMVirtualMachine:: +executeMethod (MAYBE_UNUSED jobject obj, MAYBE_UNUSED Thread *thread, + MAYBE_UNUSED jclass clazz, MAYBE_UNUSED VMMethod *method, + MAYBE_UNUSED JArray<value::Value *> *values, + MAYBE_UNUSED jint options) +{ + return NULL; +} + +jstring +gnu::classpath::jdwp::VMVirtualMachine:: +getSourceFile (jclass clazz) +{ + jstring file = _Jv_GetInterpClassSourceFile (clazz); + + // Check if the source file was found. + if (file == NULL) + throw new exception::AbsentInformationException ( + _Jv_NewStringUTF("Source file not found")); + + return file; +} + +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, + jvmtiLineNumberEntry **table_ptr) +{ + static jint last_count = 0; + static jvmtiLineNumberEntry *last_table = NULL; + static jmethodID last_method = 0; + + if (method == last_method) + { + *count_ptr = last_count; + *table_ptr = last_table; + return JVMTI_ERROR_NONE; + } + + jvmtiError err; + jint count; + jvmtiLineNumberEntry *table; + err = env->GetLineNumberTable (method, &count, &table); + if (err != JVMTI_ERROR_NONE) + { + // Keep last table in cache + return err; + } + + env->Deallocate ((unsigned char *) last_table); + last_table = *table_ptr = table; + last_count = *count_ptr = count; + return JVMTI_ERROR_NONE; +} + +static gnu::classpath::jdwp::event::filters::StepFilter * +get_request_step_filter (EventRequest *request) +{ + ::java::util::Collection *filters = request->getFilters (); + ::java::util::Iterator *iter = filters->iterator (); + filters::StepFilter *filter = NULL; + while (iter->hasNext ()) + { + using namespace gnu::classpath::jdwp::event::filters; + IEventFilter *next = (IEventFilter *) iter->next (); + if (next->getClass () == &StepFilter::class$) + { + filter = reinterpret_cast<StepFilter *> (next); + break; + } + } + + return filter; +} + +static Location * +get_request_location (EventRequest *request) +{ + Location *loc = NULL; + ::java::util::Collection *filters = request->getFilters (); + ::java::util::Iterator *iter = filters->iterator (); + while (iter->hasNext ()) + { + using namespace gnu::classpath::jdwp::event::filters; + IEventFilter *filter = (IEventFilter *) iter->next (); + if (filter->getClass () == &LocationOnlyFilter::class$) + { + LocationOnlyFilter *lof + = reinterpret_cast<LocationOnlyFilter *> (filter); + loc = lof->getLocation (); + } + } + + return loc; +} + +static void +handle_single_step (jvmtiEnv *env, struct step_info *sinfo, jthread thread, + jmethodID method, jlocation location) +{ + using namespace gnu::classpath::jdwp; + + if (sinfo == NULL || sinfo->size == JdwpConstants$StepSize::MIN) + { + // Stop now + goto send_notification; + } + else + { + // Check if we're on a new source line + /* This is a little inefficient when we're stepping OVER, + but this must be done when stepping INTO. */ + jint count; + jvmtiLineNumberEntry *table; + if (get_linetable (env, method, &count, &table) == JVMTI_ERROR_NONE) + { + jint i; + for (i = 0; i < count; ++i) + { + if (table[i].start_location == location) + { + // This is the start of a new line -- stop + goto send_notification; + } + } + + // Not at a new source line -- just keep stepping + return; + } + else + { + /* Something went wrong: either "absent information" + or "out of memory" ("invalid method id" and "native + method" aren't possible -- those are validated before + single stepping is enabled). + + Do what gdb does: just keep going. */ + return; + } + } + + send_notification: + jclass klass; + jvmtiError err = env->GetMethodDeclaringClass (method, &klass); + if (err != JVMTI_ERROR_NONE) + { + fprintf (stderr, "libgcj: internal error: could not find class for method while single stepping -- continuing\n"); + return; + } + + VMMethod *vmmethod = new VMMethod (klass, reinterpret_cast<jlong> (method)); + Location *loc = new Location (vmmethod, location); + _Jv_InterpFrame *iframe + = reinterpret_cast<_Jv_InterpFrame *> (thread->interp_frame); + JvAssert (iframe->frame_type == frame_interpreter); + jobject instance = iframe->get_this_ptr (); + event::SingleStepEvent *event + = new event::SingleStepEvent (thread, loc, instance); + + // We only want to send the notification (and consequently + // suspend) if we are not about to execute a breakpoint. + _Jv_InterpMethod *im = reinterpret_cast<_Jv_InterpMethod *> (iframe->self); + if (im->breakpoint_at (location)) + { + // Next insn is a breakpoint -- record event and + // wait for the JVMTI breakpoint notification to + // enforce a suspension policy. + VMVirtualMachine::_event_list->add (event); + } + else + { + // Next insn is not a breakpoint, so send notification + // and enforce the suspend policy. + Jdwp::notify (event); + } +} + +static void +throw_jvmti_error (jvmtiError err) +{ + char *error; + jstring msg; + if (_jdwp_jvmtiEnv->GetErrorName (err, &error) == JVMTI_ERROR_NONE) + { + msg = JvNewStringLatin1 (error); + _jdwp_jvmtiEnv->Deallocate ((unsigned char *) error); + } + else + msg = JvNewStringLatin1 ("out of memory"); + + using namespace gnu::classpath::jdwp::exception; + throw new JdwpInternalErrorException (msg); +} + +static void JNICALL +jdwpBreakpointCB (jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env, + jthread thread, jmethodID method, jlocation location) +{ + jclass klass; + jvmtiError err; + err = env->GetMethodDeclaringClass (method, &klass); + JvAssert (err == JVMTI_ERROR_NONE); + + using namespace gnu::classpath::jdwp; + using namespace gnu::classpath::jdwp::event; + + jlong methodId = reinterpret_cast<jlong> (method); + VMMethod *meth = VMVirtualMachine::getClassMethod (klass, methodId); + Location *loc = new Location (meth, location); + _Jv_InterpFrame *iframe + = reinterpret_cast<_Jv_InterpFrame *> (thread->interp_frame); + JvAssert (iframe->frame_type == frame_interpreter); + jobject instance = iframe->get_this_ptr (); + BreakpointEvent *event = new BreakpointEvent (thread, loc, instance); + + VMVirtualMachine::_event_list->add (event); + JArray<Event *> *events + = ((JArray<Event *> *) + JvNewObjectArray (VMVirtualMachine::_event_list->size (), + &Event::class$, NULL)); + VMVirtualMachine::_event_list->toArray ((jobjectArray) events); + VMVirtualMachine::_event_list->clear (); + Jdwp::notify (events); +} + +static void JNICALL +jdwpClassPrepareCB (MAYBE_UNUSED jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env, + jthread thread, jclass klass) +{ + using namespace gnu::classpath::jdwp; + + jint status = VMVirtualMachine::getClassStatus (klass); + event::ClassPrepareEvent *event + = new event::ClassPrepareEvent (thread, klass, status); + Jdwp::notify (event); +} + +static void JNICALL +jdwpExceptionCB (jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env, jthread thread, + jmethodID method, jlocation location, jobject exception, + jmethodID catch_method, jlocation catch_location) +{ + using namespace gnu::classpath::jdwp; + jclass throw_klass; + jvmtiError err = env->GetMethodDeclaringClass (method, &throw_klass); + if (err != JVMTI_ERROR_NONE) + { + fprintf (stderr, "libgcj: internal error: could not find class for "); + fprintf (stderr, "method throwing exception -- continuing\n"); + return; + } + + VMMethod *vmmethod = new VMMethod (throw_klass, + reinterpret_cast<jlong> (method)); + Location *throw_loc = new Location (vmmethod, location); + Location *catch_loc = NULL; + if (catch_method == 0) + catch_loc = Location::getEmptyLocation (); + else + { + jclass catch_klass; + err = env->GetMethodDeclaringClass (catch_method, &catch_klass); + if (err != JVMTI_ERROR_NONE) + { + fprintf (stderr, + "libgcj: internal error: could not find class for "); + fprintf (stderr, + "method catching exception -- ignoring\n"); + } + else + { + vmmethod = new VMMethod (catch_klass, + reinterpret_cast<jlong> (catch_method)); + catch_loc = new Location (vmmethod, catch_location); + } + } + + _Jv_InterpFrame *iframe + = reinterpret_cast<_Jv_InterpFrame *> (thread->interp_frame); + jobject instance = (iframe == NULL) ? NULL : iframe->get_this_ptr (); + Throwable *throwable = reinterpret_cast<Throwable *> (exception); + event::ExceptionEvent *e = new ExceptionEvent (throwable, thread, + throw_loc, catch_loc, + throw_klass, instance); + Jdwp::notify (e); +} + +static void JNICALL +jdwpSingleStepCB (jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env, jthread thread, + jmethodID method, jlocation location) +{ + jobject si = + gnu::classpath::jdwp::VMVirtualMachine::_stepping_threads->get (thread); + struct step_info *sinfo = reinterpret_cast<struct step_info *> (si); + + if (sinfo == NULL) + { + // no step filter for this thread - simply report it + handle_single_step (env, NULL, thread, method, location); + } + else + { + // A step filter exists for this thread + using namespace gnu::classpath::jdwp; + + _Jv_InterpFrame *frame + = reinterpret_cast<_Jv_InterpFrame *> (thread->interp_frame); + + switch (sinfo->depth) + { + case JdwpConstants$StepDepth::INTO: + /* This is the easy case. We ignore the method and + simply stop at either the next insn, or the next source + line. */ + handle_single_step (env, sinfo, thread, method, location); + break; + + case JdwpConstants$StepDepth::OVER: + /* This is also a pretty easy case. We just make sure that + the methods are the same and that we are at the same + stack depth, but we should also stop on the next + insn/line if the stack depth is LESS THAN it was when + we started stepping. */ + if (method == sinfo->method) + { + // Still in the same method -- must be at same stack depth + // to avoid confusion with recursive methods. + if (frame->depth () == sinfo->stack_depth) + handle_single_step (env, sinfo, thread, method, location); + } + else if (frame->depth () < sinfo->stack_depth) + { + // The method in which we were stepping was popped off + // the stack. We simply need to stop at the next insn/line. + handle_single_step (env, sinfo, thread, method, location); + } + break; + + case JdwpConstants$StepDepth::OUT: + // All we need to do is check the stack depth + if (sinfo->stack_depth > frame->depth ()) + handle_single_step (env, sinfo, thread, method, location); + break; + + default: + /* This should not happen. The JDWP back-end should have + validated the StepFilter. */ + fprintf (stderr, + "libgcj: unknown step depth while single stepping\n"); + return; + } + } +} + +static void JNICALL +jdwpThreadEndCB (MAYBE_UNUSED jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env, + jthread thread) +{ + using namespace gnu::classpath::jdwp::event; + + ThreadEndEvent *e = new ThreadEndEvent (thread); + gnu::classpath::jdwp::Jdwp::notify (e); +} + +static void JNICALL +jdwpThreadStartCB (MAYBE_UNUSED jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env, + jthread thread) +{ + using namespace gnu::classpath::jdwp::event; + + ThreadStartEvent *e = new ThreadStartEvent (thread); + gnu::classpath::jdwp::Jdwp::notify (e); +} + +static void JNICALL +jdwpVMDeathCB (MAYBE_UNUSED jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env) +{ + using namespace gnu::classpath::jdwp::event; + gnu::classpath::jdwp::Jdwp::notify (new VmDeathEvent ()); +} + +static void JNICALL +jdwpVMInitCB (MAYBE_UNUSED jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env, + jthread thread) +{ + // The VM is now initialized, add our callbacks + jvmtiEventCallbacks callbacks; + DEFINE_CALLBACK (callbacks, Breakpoint); + DEFINE_CALLBACK (callbacks, ClassPrepare); + DEFINE_CALLBACK (callbacks, Exception); + DEFINE_CALLBACK (callbacks, SingleStep); + DEFINE_CALLBACK (callbacks, ThreadEnd); + DEFINE_CALLBACK (callbacks, ThreadStart); + DEFINE_CALLBACK (callbacks, VMDeath); + _jdwp_jvmtiEnv->SetEventCallbacks (&callbacks, sizeof (callbacks)); + + // Enable callbacks + ENABLE_EVENT (BREAKPOINT, NULL); + ENABLE_EVENT (CLASS_PREPARE, NULL); + ENABLE_EVENT (EXCEPTION, NULL); + // SingleStep is enabled only when needed + ENABLE_EVENT (THREAD_END, NULL); + ENABLE_EVENT (THREAD_START, NULL); + ENABLE_EVENT (VM_DEATH, NULL); + + // Send JDWP VMInit + using namespace gnu::classpath::jdwp::event; + gnu::classpath::jdwp::Jdwp::notify (new VmInitEvent (thread)); +} diff --git a/libjava/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.h new file mode 100644 index 000000000..4bf187cda --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ArrayReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ArrayReferenceCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ArrayReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ArrayReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ArrayReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeLength(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeGetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ArrayReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.h new file mode 100644 index 000000000..6d7864aa4 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ArrayTypeCommandSet.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ArrayTypeCommandSet__ +#define __gnu_classpath_jdwp_processor_ArrayTypeCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ArrayTypeCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ArrayTypeCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ArrayTypeCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + virtual void executeNewInstance(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ArrayTypeCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.h new file mode 100644 index 000000000..3395a0eed --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ClassLoaderReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ClassLoaderReferenceCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ClassLoaderReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ClassLoaderReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ClassLoaderReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + virtual void executeVisibleClasses(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ClassLoaderReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.h new file mode 100644 index 000000000..67b4583a7 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ClassObjectReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ClassObjectReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ClassObjectReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + virtual void executeReflectedType(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ClassObjectReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ClassTypeCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ClassTypeCommandSet.h new file mode 100644 index 000000000..6967d32d7 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ClassTypeCommandSet.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ClassTypeCommandSet__ +#define __gnu_classpath_jdwp_processor_ClassTypeCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ClassTypeCommandSet; + } + namespace util + { + class MethodResult; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ClassTypeCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ClassTypeCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeSuperclass(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeInvokeMethod(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeNewInstance(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + ::gnu::classpath::jdwp::util::MethodResult * invokeMethod(::java::nio::ByteBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ClassTypeCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/CommandSet.h b/libjava/gnu/classpath/jdwp/processor/CommandSet.h new file mode 100644 index 000000000..6833202db --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/CommandSet.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_CommandSet__ +#define __gnu_classpath_jdwp_processor_CommandSet__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMIdManager; + namespace processor + { + class CommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::CommandSet : public ::java::lang::Object +{ + +public: + CommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte) = 0; +public: // actually protected + ::gnu::classpath::jdwp::VMIdManager * __attribute__((aligned(__alignof__( ::java::lang::Object)))) idMan; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_CommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/EventRequestCommandSet.h b/libjava/gnu/classpath/jdwp/processor/EventRequestCommandSet.h new file mode 100644 index 000000000..8a86b7bc9 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/EventRequestCommandSet.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_EventRequestCommandSet__ +#define __gnu_classpath_jdwp_processor_EventRequestCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class EventRequestCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::EventRequestCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + EventRequestCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeSet(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClear(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClearAllBreakpoints(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_EventRequestCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/FieldCommandSet.h b/libjava/gnu/classpath/jdwp/processor/FieldCommandSet.h new file mode 100644 index 000000000..443cede87 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/FieldCommandSet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_FieldCommandSet__ +#define __gnu_classpath_jdwp_processor_FieldCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class FieldCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::FieldCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + FieldCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_FieldCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.h b/libjava/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.h new file mode 100644 index 000000000..2348e7966 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.h @@ -0,0 +1,43 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_InterfaceTypeCommandSet__ +#define __gnu_classpath_jdwp_processor_InterfaceTypeCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class InterfaceTypeCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::InterfaceTypeCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + InterfaceTypeCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_InterfaceTypeCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/MethodCommandSet.h b/libjava/gnu/classpath/jdwp/processor/MethodCommandSet.h new file mode 100644 index 000000000..3dc3a67fa --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/MethodCommandSet.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_MethodCommandSet__ +#define __gnu_classpath_jdwp_processor_MethodCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class MethodCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::MethodCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + MethodCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeLineTable(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeVariableTable(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeByteCodes(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeIsObsolete(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeVariableTableWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_MethodCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.h new file mode 100644 index 000000000..74a7aaa24 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.h @@ -0,0 +1,53 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ObjectReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ObjectReferenceCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ObjectReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ObjectReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ObjectReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeReferenceType(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeGetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeMonitorInfo(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeInvokeMethod(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeDisableCollection(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeEnableCollection(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeIsCollected(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ObjectReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/PacketProcessor.h b/libjava/gnu/classpath/jdwp/processor/PacketProcessor.h new file mode 100644 index 000000000..d2e5057e3 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/PacketProcessor.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_PacketProcessor__ +#define __gnu_classpath_jdwp_processor_PacketProcessor__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class CommandSet; + class PacketProcessor; + } + namespace transport + { + class JdwpConnection; + } + } + } + } +} + +class gnu::classpath::jdwp::processor::PacketProcessor : public ::java::lang::Object +{ + +public: + PacketProcessor(::gnu::classpath::jdwp::transport::JdwpConnection *); + virtual ::java::lang::Object * run(); + virtual void shutdown(); +private: + void _processOnePacket(); + ::gnu::classpath::jdwp::transport::JdwpConnection * __attribute__((aligned(__alignof__( ::java::lang::Object)))) _connection; + jboolean _shutdown; + JArray< ::gnu::classpath::jdwp::processor::CommandSet * > * _sets; + ::java::io::ByteArrayOutputStream * _outputBytes; + ::java::io::DataOutputStream * _os; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_PacketProcessor__ diff --git a/libjava/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.h new file mode 100644 index 000000000..056a5ca9c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.h @@ -0,0 +1,60 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ReferenceTypeCommandSet__ +#define __gnu_classpath_jdwp_processor_ReferenceTypeCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ReferenceTypeCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ReferenceTypeCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ReferenceTypeCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeSignature(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClassLoader(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeModifiers(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeFields(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeMethods(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeGetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSourceFile(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeNestedTypes(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeStatus(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeInterfaces(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClassObject(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSourceDebugExtension(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSignatureWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeFieldWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeMethodsWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ReferenceTypeCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/StackFrameCommandSet.h b/libjava/gnu/classpath/jdwp/processor/StackFrameCommandSet.h new file mode 100644 index 000000000..be6345610 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/StackFrameCommandSet.h @@ -0,0 +1,49 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_StackFrameCommandSet__ +#define __gnu_classpath_jdwp_processor_StackFrameCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class StackFrameCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::StackFrameCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + StackFrameCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeGetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetValues(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeThisObject(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executePopFrames(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_StackFrameCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/StringReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/StringReferenceCommandSet.h new file mode 100644 index 000000000..4904cbc07 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/StringReferenceCommandSet.h @@ -0,0 +1,46 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_StringReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_StringReferenceCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class StringReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::StringReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + StringReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeValue(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_StringReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.h new file mode 100644 index 000000000..b7040d44d --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.h @@ -0,0 +1,48 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ThreadGroupReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ThreadGroupReferenceCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ThreadGroupReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ThreadGroupReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ThreadGroupReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeName(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeParent(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeChildren(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ThreadGroupReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.h b/libjava/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.h new file mode 100644 index 000000000..c3248e913 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_ThreadReferenceCommandSet__ +#define __gnu_classpath_jdwp_processor_ThreadReferenceCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class ThreadReferenceCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::ThreadReferenceCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + ThreadReferenceCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeName(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSuspend(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeResume(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeStatus(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeThreadGroup(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeFrames(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeFrameCount(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeOwnedMonitors(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeCurrentContendedMonitor(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeStop(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeInterrupt(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSuspendCount(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_ThreadReferenceCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.h b/libjava/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.h new file mode 100644 index 000000000..c2eaf8787 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_processor_VirtualMachineCommandSet__ +#define __gnu_classpath_jdwp_processor_VirtualMachineCommandSet__ + +#pragma interface + +#include <gnu/classpath/jdwp/processor/CommandSet.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace processor + { + class VirtualMachineCommandSet; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::processor::VirtualMachineCommandSet : public ::gnu::classpath::jdwp::processor::CommandSet +{ + +public: + VirtualMachineCommandSet(); + virtual jboolean runCommand(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *, jbyte); +private: + void executeVersion(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClassesBySignature(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeAllClasses(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeAllThreads(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeTopLevelThreadGroups(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeDispose(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeIDsizes(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSuspend(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeResume(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeExit(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeCreateString(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeCapabilities(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeClassPaths(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeDisposeObjects(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeHoldEvents(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeReleaseEvents(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeCapabilitiesNew(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeRedefineClasses(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeSetDefaultStratum(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + void executeAllClassesWithGeneric(::java::nio::ByteBuffer *, ::java::io::DataOutputStream *); + ::java::lang::ThreadGroup * getRootThreadGroup(::java::lang::ThreadGroup *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_processor_VirtualMachineCommandSet__ diff --git a/libjava/gnu/classpath/jdwp/transport/ITransport.h b/libjava/gnu/classpath/jdwp/transport/ITransport.h new file mode 100644 index 000000000..572b61517 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/ITransport.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_ITransport__ +#define __gnu_classpath_jdwp_transport_ITransport__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class ITransport; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::ITransport : public ::java::lang::Object +{ + +public: + virtual void configure(::java::util::HashMap *) = 0; + virtual void initialize() = 0; + virtual void shutdown() = 0; + virtual ::java::io::InputStream * getInputStream() = 0; + virtual ::java::io::OutputStream * getOutputStream() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __gnu_classpath_jdwp_transport_ITransport__ diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpCommandPacket.h b/libjava/gnu/classpath/jdwp/transport/JdwpCommandPacket.h new file mode 100644 index 000000000..6d67ad48c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/JdwpCommandPacket.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_JdwpCommandPacket__ +#define __gnu_classpath_jdwp_transport_JdwpCommandPacket__ + +#pragma interface + +#include <gnu/classpath/jdwp/transport/JdwpPacket.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class JdwpCommandPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::JdwpCommandPacket : public ::gnu::classpath::jdwp::transport::JdwpPacket +{ + +public: + JdwpCommandPacket(); + JdwpCommandPacket(jbyte, jbyte); + virtual jint getLength(); + virtual jbyte getCommandSet(); + virtual void setCommandSet(jbyte); + virtual jbyte getCommand(); + virtual void setCommand(jbyte); +public: // actually protected + virtual jint myFromBytes(JArray< jbyte > *, jint); + virtual void myWrite(::java::io::DataOutputStream *); + jbyte __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::transport::JdwpPacket)))) _commandSet; + jbyte _command; +private: + static const jint MINIMUM_LENGTH = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_JdwpCommandPacket__ diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpConnection.h b/libjava/gnu/classpath/jdwp/transport/JdwpConnection.h new file mode 100644 index 000000000..a8333af9c --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/JdwpConnection.h @@ -0,0 +1,66 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_JdwpConnection__ +#define __gnu_classpath_jdwp_transport_JdwpConnection__ + +#pragma interface + +#include <java/lang/Thread.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace event + { + class Event; + class EventRequest; + } + namespace transport + { + class ITransport; + class JdwpConnection; + class JdwpPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::JdwpConnection : public ::java::lang::Thread +{ + +public: + JdwpConnection(::java::lang::ThreadGroup *, ::gnu::classpath::jdwp::transport::ITransport *); + virtual void initialize(); +private: + void _doHandshake(); +public: + virtual void run(); +private: + void _readOnePacket(); +public: + virtual ::gnu::classpath::jdwp::transport::JdwpPacket * getPacket(); + virtual void sendPacket(::gnu::classpath::jdwp::transport::JdwpPacket *); + virtual void sendEvents(JArray< ::gnu::classpath::jdwp::event::EventRequest * > *, JArray< ::gnu::classpath::jdwp::event::Event * > *, jbyte); + virtual void shutdown(); +private: + static JArray< jbyte > * _HANDSHAKE; + ::gnu::classpath::jdwp::transport::ITransport * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) _transport; + ::java::util::ArrayList * _commandQueue; + jboolean _shutdown; + ::java::io::DataInputStream * _inStream; + ::java::io::DataOutputStream * _outStream; + ::java::io::ByteArrayOutputStream * _bytes; + ::java::io::DataOutputStream * _doStream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_JdwpConnection__ diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpPacket.h b/libjava/gnu/classpath/jdwp/transport/JdwpPacket.h new file mode 100644 index 000000000..bace85265 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/JdwpPacket.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_JdwpPacket__ +#define __gnu_classpath_jdwp_transport_JdwpPacket__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class JdwpPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::JdwpPacket : public ::java::lang::Object +{ + +public: + JdwpPacket(); + JdwpPacket(::gnu::classpath::jdwp::transport::JdwpPacket *); + virtual jint getId(); + virtual void setId(jint); + virtual jbyte getFlags(); + virtual void setFlags(jbyte); + virtual JArray< jbyte > * getData(); + virtual void setData(JArray< jbyte > *); + virtual jint getLength(); +public: // actually protected + virtual jint myFromBytes(JArray< jbyte > *, jint) = 0; +public: + static ::gnu::classpath::jdwp::transport::JdwpPacket * fromBytes(JArray< jbyte > *); +public: // actually protected + virtual void myWrite(::java::io::DataOutputStream *) = 0; +public: + virtual void write(::java::io::DataOutputStream *); +public: // actually protected + static jint _last_id; + static const jint JDWP_FLAG_REPLY = 128; + static const jint MINIMUM_SIZE = 9; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _id; + jbyte _flags; + JArray< jbyte > * _data; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_JdwpPacket__ diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpReplyPacket.h b/libjava/gnu/classpath/jdwp/transport/JdwpReplyPacket.h new file mode 100644 index 000000000..023533468 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/JdwpReplyPacket.h @@ -0,0 +1,50 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_JdwpReplyPacket__ +#define __gnu_classpath_jdwp_transport_JdwpReplyPacket__ + +#pragma interface + +#include <gnu/classpath/jdwp/transport/JdwpPacket.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class JdwpPacket; + class JdwpReplyPacket; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::JdwpReplyPacket : public ::gnu::classpath::jdwp::transport::JdwpPacket +{ + +public: + JdwpReplyPacket(); + JdwpReplyPacket(::gnu::classpath::jdwp::transport::JdwpPacket *, jshort); + JdwpReplyPacket(::gnu::classpath::jdwp::transport::JdwpPacket *); + virtual jint getLength(); + virtual jshort getErrorCode(); + virtual void setErrorCode(jshort); +public: // actually protected + virtual jint myFromBytes(JArray< jbyte > *, jint); + virtual void myWrite(::java::io::DataOutputStream *); + jshort __attribute__((aligned(__alignof__( ::gnu::classpath::jdwp::transport::JdwpPacket)))) _errorCode; +private: + static const jint MINIMUM_LENGTH = 2; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_JdwpReplyPacket__ diff --git a/libjava/gnu/classpath/jdwp/transport/SocketTransport.h b/libjava/gnu/classpath/jdwp/transport/SocketTransport.h new file mode 100644 index 000000000..b5fe5c327 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/SocketTransport.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_SocketTransport__ +#define __gnu_classpath_jdwp_transport_SocketTransport__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class SocketTransport; + } + } + } + } + namespace java + { + namespace net + { + class Socket; + } + } +} + +class gnu::classpath::jdwp::transport::SocketTransport : public ::java::lang::Object +{ + +public: // actually package-private + SocketTransport(); +public: + virtual void configure(::java::util::HashMap *); + virtual void initialize(); + virtual void shutdown(); + virtual ::java::io::InputStream * getInputStream(); + virtual ::java::io::OutputStream * getOutputStream(); + static ::java::lang::String * NAME; +private: + static ::java::lang::String * _PROPERTY_ADDRESS; + static ::java::lang::String * _PROPERTY_SERVER; + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _port; + ::java::lang::String * _host; + jboolean _server; + ::java::net::Socket * _socket; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_SocketTransport__ diff --git a/libjava/gnu/classpath/jdwp/transport/TransportException.h b/libjava/gnu/classpath/jdwp/transport/TransportException.h new file mode 100644 index 000000000..18c405ceb --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/TransportException.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_TransportException__ +#define __gnu_classpath_jdwp_transport_TransportException__ + +#pragma interface + +#include <java/lang/Exception.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class TransportException; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::TransportException : public ::java::lang::Exception +{ + +public: + TransportException(::java::lang::String *); + TransportException(::java::lang::Throwable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_TransportException__ diff --git a/libjava/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.h b/libjava/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.h new file mode 100644 index 000000000..4900baa66 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/TransportFactory$TransportMethod.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_TransportFactory$TransportMethod__ +#define __gnu_classpath_jdwp_transport_TransportFactory$TransportMethod__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class TransportFactory$TransportMethod; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::TransportFactory$TransportMethod : public ::java::lang::Object +{ + +public: + TransportFactory$TransportMethod(::java::lang::String *, ::java::lang::Class *); +public: // actually package-private + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name; + ::java::lang::Class * clazz; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_TransportFactory$TransportMethod__ diff --git a/libjava/gnu/classpath/jdwp/transport/TransportFactory.h b/libjava/gnu/classpath/jdwp/transport/TransportFactory.h new file mode 100644 index 000000000..e3e01986b --- /dev/null +++ b/libjava/gnu/classpath/jdwp/transport/TransportFactory.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_transport_TransportFactory__ +#define __gnu_classpath_jdwp_transport_TransportFactory__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace transport + { + class ITransport; + class TransportFactory; + class TransportFactory$TransportMethod; + } + } + } + } +} + +class gnu::classpath::jdwp::transport::TransportFactory : public ::java::lang::Object +{ + +public: + TransportFactory(); + static ::gnu::classpath::jdwp::transport::ITransport * newInstance(::java::util::HashMap *); +private: + static ::java::lang::String * _TRANSPORT_PROPERTY; + static JArray< ::gnu::classpath::jdwp::transport::TransportFactory$TransportMethod * > * _transportMethods; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_transport_TransportFactory__ diff --git a/libjava/gnu/classpath/jdwp/util/JdwpString.h b/libjava/gnu/classpath/jdwp/util/JdwpString.h new file mode 100644 index 000000000..0845ca8ce --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/JdwpString.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_JdwpString__ +#define __gnu_classpath_jdwp_util_JdwpString__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class JdwpString; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::util::JdwpString : public ::java::lang::Object +{ + +public: + JdwpString(); + static void writeString(::java::io::DataOutputStream *, ::java::lang::String *); + static ::java::lang::String * readString(::java::nio::ByteBuffer *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_JdwpString__ diff --git a/libjava/gnu/classpath/jdwp/util/LineTable.h b/libjava/gnu/classpath/jdwp/util/LineTable.h new file mode 100644 index 000000000..6ca678c3a --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/LineTable.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_LineTable__ +#define __gnu_classpath_jdwp_util_LineTable__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class LineTable; + } + } + } + } +} + +class gnu::classpath::jdwp::util::LineTable : public ::java::lang::Object +{ + +public: + LineTable(jlong, jlong, JArray< jint > *, JArray< jlong > *); + virtual void write(::java::io::DataOutputStream *); +private: + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) start; + jlong end; + JArray< jint > * lineNum; + JArray< jlong > * lineCI; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_LineTable__ diff --git a/libjava/gnu/classpath/jdwp/util/Location.h b/libjava/gnu/classpath/jdwp/util/Location.h new file mode 100644 index 000000000..2e8710533 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/Location.h @@ -0,0 +1,54 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_Location__ +#define __gnu_classpath_jdwp_util_Location__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + class VMMethod; + namespace util + { + class Location; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + } + } +} + +class gnu::classpath::jdwp::util::Location : public ::java::lang::Object +{ + +public: + Location(::gnu::classpath::jdwp::VMMethod *, jlong); + Location(::java::nio::ByteBuffer *); + virtual void write(::java::io::DataOutputStream *); + static ::gnu::classpath::jdwp::util::Location * getEmptyLocation(); + virtual ::gnu::classpath::jdwp::VMMethod * getMethod(); + virtual jlong getIndex(); + virtual ::java::lang::String * toString(); + virtual jboolean equals(::java::lang::Object *); +private: + ::gnu::classpath::jdwp::VMMethod * __attribute__((aligned(__alignof__( ::java::lang::Object)))) method; + jlong index; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_Location__ diff --git a/libjava/gnu/classpath/jdwp/util/MethodResult.h b/libjava/gnu/classpath/jdwp/util/MethodResult.h new file mode 100644 index 000000000..11e26d3c9 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/MethodResult.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_MethodResult__ +#define __gnu_classpath_jdwp_util_MethodResult__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class MethodResult; + } + namespace value + { + class Value; + } + } + } + } +} + +class gnu::classpath::jdwp::util::MethodResult : public ::java::lang::Object +{ + +public: + MethodResult(::gnu::classpath::jdwp::value::Value *, ::java::lang::Throwable *); + virtual ::gnu::classpath::jdwp::value::Value * getReturnedValue(); + virtual ::java::lang::Throwable * getThrownException(); +private: + ::gnu::classpath::jdwp::value::Value * __attribute__((aligned(__alignof__( ::java::lang::Object)))) returnedValue; + ::java::lang::Throwable * thrownException; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_MethodResult__ diff --git a/libjava/gnu/classpath/jdwp/util/MonitorInfo.h b/libjava/gnu/classpath/jdwp/util/MonitorInfo.h new file mode 100644 index 000000000..8b7d65f03 --- /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 000000000..c071e0a88 --- /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/util/Signature.h b/libjava/gnu/classpath/jdwp/util/Signature.h new file mode 100644 index 000000000..310b1b804 --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/Signature.h @@ -0,0 +1,51 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_Signature__ +#define __gnu_classpath_jdwp_util_Signature__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class Signature; + } + } + } + namespace java + { + namespace lang + { + class CPStringBuilder; + } + } + } +} + +class gnu::classpath::jdwp::util::Signature : public ::java::lang::Object +{ + +public: + Signature(); + static ::java::lang::String * computeClassSignature(::java::lang::Class *); + static ::java::lang::String * computeFieldSignature(::java::lang::reflect::Field *); + static ::java::lang::String * computeMethodSignature(::java::lang::reflect::Method *); +private: + static ::java::lang::String * _computeSignature(::java::lang::Class *, JArray< ::java::lang::Class * > *); + static void _addToSignature(::gnu::java::lang::CPStringBuilder *, ::java::lang::Class *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_Signature__ diff --git a/libjava/gnu/classpath/jdwp/util/VariableTable.h b/libjava/gnu/classpath/jdwp/util/VariableTable.h new file mode 100644 index 000000000..893348e4f --- /dev/null +++ b/libjava/gnu/classpath/jdwp/util/VariableTable.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_util_VariableTable__ +#define __gnu_classpath_jdwp_util_VariableTable__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace util + { + class VariableTable; + } + } + } + } +} + +class gnu::classpath::jdwp::util::VariableTable : public ::java::lang::Object +{ + +public: + VariableTable(jint, jint, JArray< jlong > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< jint > *, JArray< jint > *); + virtual void write(::java::io::DataOutputStream *); +private: + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) argCnt; + jint slots; + JArray< jlong > * lineCI; + JArray< jint > * slot; + JArray< jint > * lengths; + JArray< ::java::lang::String * > * sigs; + JArray< ::java::lang::String * > * names; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_jdwp_util_VariableTable__ diff --git a/libjava/gnu/classpath/jdwp/value/ArrayValue.h b/libjava/gnu/classpath/jdwp/value/ArrayValue.h new file mode 100644 index 000000000..3c6e6935e --- /dev/null +++ b/libjava/gnu/classpath/jdwp/value/ArrayValue.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_jdwp_value_ArrayValue__ +#define __gnu_classpath_jdwp_value_ArrayValue__ + +#pragma interface + +#include <gnu/classpath/jdwp/value/Value.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace jdwp + { + namespace value + { + class ArrayValue; + } + } + } + } +} + +class gnu::classpath::jdwp::value::ArrayValue : public ::gnu::classpath::jdwp::value::Value +{ + +public: + ArrayValue(::java::lang::Object *); +public: // actually protected + virtual ::java::lang::Object * getObject(); + virtual 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_ArrayValue__ diff --git a/libjava/gnu/classpath/jdwp/value/BooleanValue.h b/libjava/gnu/classpath/jdwp/value/BooleanValue.h new file mode 100644 index 000000000..57fa16ca9 --- /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 000000000..6fa45acd3 --- /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 000000000..2f87f776a --- /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 000000000..c68e68362 --- /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 000000000..d8917b9a5 --- /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 000000000..0d09aff8d --- /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 000000000..8416558e6 --- /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 000000000..46bef25bb --- /dev/null +++ b/libjava/gnu/classpath/jdwp/value/ObjectValue.h @@ -0,0 +1,42 @@ + +// 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 *); + ::java::lang::Object * getValue(); +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 000000000..124d78181 --- /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 000000000..dc8e52fd7 --- /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 000000000..8ab3d5465 --- /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 000000000..316d5d047 --- /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 000000000..48a727754 --- /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__ |