diff options
Diffstat (limited to 'gcc-4.4.3/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java')
-rw-r--r-- | gcc-4.4.3/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java | 901 |
1 files changed, 901 insertions, 0 deletions
diff --git a/gcc-4.4.3/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java b/gcc-4.4.3/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java new file mode 100644 index 000000000..f38774d62 --- /dev/null +++ b/gcc-4.4.3/libjava/classpath/gnu/classpath/jdwp/JdwpConstants.java @@ -0,0 +1,901 @@ +/* JdwpConstants.java -- Constants defined by JDWP 1.4 specification + Copyright (C) 2005 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; + +/** + * Constants defined by JDWP specification. + * + * @author Keith Seitz (keiths@redhat.com) + */ +public class JdwpConstants +{ + public static final class Version + { + public static final int MAJOR = 1; + public static final int MINOR = 4; + } + + //////////////////////////////////////// + // Commands/Sets // + //////////////////////////////////////// + + public static final class CommandSet + { + public static final class VirtualMachine + { + public static final byte CS_VALUE = 1; + + // commands + public static final byte VERSION = 1; + public static final byte CLASSES_BY_SIGNATURE = 2; + public static final byte ALL_CLASSES = 3; + public static final byte ALL_THREADS = 4; + public static final byte TOP_LEVEL_THREAD_GROUPS = 5; + public static final byte DISPOSE = 6; + public static final byte IDSIZES = 7; + public static final byte SUSPEND = 8; + public static final byte RESUME = 9; + public static final byte EXIT = 10; + public static final byte CREATE_STRING = 11; + public static final byte CAPABILITIES = 12; + public static final byte CLASS_PATHS = 13; + public static final byte DISPOSE_OBJECTS = 14; + public static final byte HOLD_EVENTS = 15; + public static final byte RELEASE_EVENTS = 16; + public static final byte CAPABILITIES_NEW = 17; + public static final byte REDEFINE_CLASSES = 18; + public static final byte SET_DEFAULT_STRATUM = 19; + public static final byte ALL_CLASSES_WITH_GENERIC = 20; + } + + public static final class ReferenceType + { + public static final byte CS_VALUE = 2; + + // commands + public static final byte SIGNATURE= 1; + public static final byte CLASS_LOADER= 2; + public static final byte MODIFIERS = 3; + public static final byte FIELDS = 4; + public static final byte METHODS = 5; + public static final byte GET_VALUES = 6; + public static final byte SOURCE_FILE = 7; + public static final byte NESTED_TYPES = 8; + public static final byte STATUS = 9; + public static final byte INTERFACES= 10; + public static final byte CLASS_OBJECT = 11; + public static final byte SOURCE_DEBUG_EXTENSION = 12; + public static final byte SIGNATURE_WITH_GENERIC = 13; + public static final byte FIELDS_WITH_GENERIC = 14; + public static final byte METHODS_WITH_GENERIC = 15; + } + + public static final class ClassType + { + public static final byte CS_VALUE = 3; + + // commands + public static final byte SUPERCLASS = 1; + public static final byte SET_VALUES = 2; + public static final byte INVOKE_METHOD = 3; + public static final byte NEW_INSTANCE = 4; + } + + public static final class ArrayType + { + public static final byte CS_VALUE = 4; + + // commands + public static final byte NEW_INSTANCE = 1; + } + + public static final class InterfaceType + { + public static final byte CS_VALUE = 5; + + // commands + } + + public static final class Method + { + public static final byte CS_VALUE = 6; + + // commands + public static final byte LINE_TABLE = 1; + public static final byte VARIABLE_TABLE = 2; + public static final byte BYTE_CODES = 3; + public static final byte IS_OBSOLETE = 4; + public static final byte VARIABLE_TABLE_WITH_GENERIC = 5; + } + + public static final class Field + { + public static final byte CS_VALUE = 8; + + // commands + } + + public static final class ObjectReference + { + public static final byte CS_VALUE = 9; + + // commands + public static final byte REFERENCE_TYPE = 1; + public static final byte GET_VALUES = 2; + public static final byte SET_VALUES = 3; + public static final byte MONITOR_INFO = 5; + public static final byte INVOKE_METHOD = 6; + public static final byte DISABLE_COLLECTION = 7; + public static final byte ENABLE_COLLECTION = 8; + public static final byte IS_COLLECTED = 9; + } + + public static final class StringReference + { + public static final byte CS_VALUE = 10; + + // commands + public static final byte VALUE = 1; + } + + public static final class ThreadReference + { + public static final byte CS_VALUE = 11; + + // commands + public static final byte NAME = 1; + public static final byte SUSPEND = 2; + public static final byte RESUME = 3; + public static final byte STATUS = 4; + public static final byte THREAD_GROUP = 5; + public static final byte FRAMES = 6; + public static final byte FRAME_COUNT = 7; + public static final byte OWNED_MONITORS = 8; + public static final byte CURRENT_CONTENDED_MONITOR = 9; + public static final byte STOP = 10; + public static final byte INTERRUPT = 11; + public static final byte SUSPEND_COUNT = 12; + } + + public static final class ThreadGroupReference + { + public static final byte CS_VALUE = 12; + + // commands + public static final byte NAME = 1; + public static final byte PARENT = 2; + public static final byte CHILDREN = 3; + } + + public static final class ArrayReference + { + public static final byte CS_VALUE = 13; + + // commands + public static final byte LENGTH = 1; + public static final byte GET_VALUES = 2; + public static final byte SET_VALUES = 3; + } + + public static final class ClassLoaderReference + { + public static final byte CS_VALUE = 14; + + // commands + public static final byte VISIBLE_CLASSES = 1; + } + + public static final class EventRequest + { + public static final byte CS_VALUE = 15; + + // commands + public static final byte SET = 1; + public static final byte CLEAR = 2; + public static final byte CLEAR_ALL_BREAKPOINTS = 3; + } + + public static final class StackFrame + { + public static final byte CS_VALUE = 16; + + // commands + public static final byte GET_VALUES = 1; + public static final byte SET_VALUES = 2; + public static final byte THIS_OBJECT = 3; + public static final byte POP_FRAMES = 4; + } + + public static final class ClassObjectReference + { + public static final byte CS_VALUE = 17; + + // commands + public static final byte REFLECTED_TYPE = 1; + } + + public static final int MAXIMUM = ClassObjectReference.CS_VALUE; + + public static final class Event + { + public static final byte CS_VALUE = 64; + + // commands + public static final byte COMPOSITE = 100; + } + } + + //////////////////////////////////////// + // Constants // + //////////////////////////////////////// + + /* + * Error constants + */ + public static final class Error + { + /** + * No error has occurred + */ + public static final short NONE = 0; + + /** + * Passed thread is null, is not a valid thread or has exited + */ + public static final short INVALID_THREAD = 10; + + /** + * Thread group invalid + */ + public static final short INVALID_THREAD_GROUP = 11; + + /** + * Invalid priority + */ + public static final short INVALID_PRIORITY = 12; + + /** + * Specified thread has not been suspended by an event + */ + public static final short THREAD_NOT_SUSPENDED = 13; + + /** + * Thread already suspended + */ + public static final short THREAD_SUSPENDED = 14; + + /** + * Reference type has been unloaded and garbage collected + */ + public static final short INVALID_OBJECT = 20; + + /** + * Invalid class + */ + public static final short INVALID_CLASS = 21; + + /** + * Class has been loaded but not yet prepared + */ + public static final short CLASS_NOT_PREPARED = 22; + + /** + * Invalid method + */ + public static final short INVALID_METHODID = 23; + + /** + * Invalid location + */ + public static final short INVALID_LOCATION = 24; + + /** + * Invalid field + */ + public static final short INVALID_FIELDID = 25; + + /** + * Invaliid frame + */ + public static final short INVALID_FRAMEID = 30; + + /** + * There are no more Java or JNI frames on the call stack + */ + public static final short NO_MORE_FRAMES = 31; + + /** + * Information about the frame is not available + */ + public static final short OPAQUE_FRAME = 32; + + /** + * Operation can only be performed on current frame + */ + public static final short NOT_CURRENT_FRAME = 33; + + /** + * Variable is not an appropriate type for the function used + */ + public static final short TYPE_MISMATCH = 34; + + /** + * Invalid slot + */ + public static final short INVALID_SLOT = 35; + + /** + * Item already set + */ + public static final short DUPLICATE = 40; + + /** + * Desired element not found + */ + public static final short NOT_FOUND = 41; + + /** + * Invalid monitor + */ + public static final short INVALID_MONITOR = 50; + + /** + * Thread doesn't own the monitor + */ + public static final short NOT_MONITOR_OWNER = 51; + + /** + * Call has been interrupted before completion + */ + public static final short INTERRUPT = 52; + + /** + * Virtual machine attempted to read a class file and determined that + * the file is malformed or otherwise cannot be interpreted as a class + * file + */ + public static final short INVALID_CLASS_FORMAT = 60; + + /** + * Circularity has been detected while initializing a class + */ + public static final short CIRCULAR_CLASS_DEFINITION = 61; + + /** + * Verifier detected that a class file, though well formed, contained + * some sort of internal inconsistency or security problem + */ + public static final short FAILS_VERIFICATION = 62; + + /** + * Adding methods has not been implemented + */ + public static final short ADD_METHOD_NOT_IMPLEMENTED = 63; + + /** + * Schema change has not been implemented + */ + public static final short SCHEMA_CHANGE_NOT_IMPLEMENTED = 64; + + /** + * State of the thread has been modified and is now inconsistent + */ + public static final short INVALID_TYPESTATE = 65; + + /** + * A direct superclass is different for the new class version, or the set + * of directly implemented interfaces is different and + * <code>canUnrestrictedlyRedefineClasses</code> is false + */ + public static final short HIERARCHY_CHANGE_NOT_IMPLEMENTED = 66; + + /** + * New class version does not declare a method declared in the old + * class version and <code>canUnrestrictedlyRedefineClasses</code> + * is false + */ + public static final short DELETE_METHOD_NOT_IMPLEMENTED = 67; + + /** + * Class file has a version number not supported by this VM + */ + public static final short UNSUPPORTED_VERSION = 68; + + /** + * Class name defined in the new class file is different from the name + * in the old class object + */ + public static final short NAMES_DONT_MATCH = 69; + + /** + * New class version has different modifiers and + * <code>canUnrestrictedlyRedefineClasses</code> is false + */ + public static final short CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED = 70; + + /** + * A method in the new class version has different modifiers than its + * counterpart in the old class version and + * <code>canUnrestrictedlyRedefineClasses</code> is false. + */ + public static final short METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED = 71; + + /** + * Functionality is not implemented in this virtual machine + */ + public static final short NOT_IMPLEMENTED = 99; + + /** + * Invalid pointer + */ + public static final short NULL_POINTER = 100; + + /** + * Desired information is not available + */ + public static final short ABSENT_INFORMATION = 101; + + /** + * Specified event type id is not recognized + */ + public static final short INVALID_EVENT_TYPE = 102; + + /** + * Illegal argument + */ + public static final short ILLEGAL_ARGUMENT = 103; + + /** + * The function needed to allocate memory and no more memory was + * available for allocation + */ + public static final short OUT_OF_MEMORY = 110; + + /** + * Debugging has not been enabled in this virtual machine. JVMDI cannot + * be used + */ + public static final short ACCESS_DENIED = 111; + + /** + * The virtual machine is not running + */ + public static final short VM_DEAD = 112; + + /** + * An unexpected internal error has occurred + */ + public static final short INTERNAL = 113; + + /** + * The thread being used to call this function is not attached to the + * virtual machine. Calls must be made from attached threads. + */ + public static final short UNATTACHED_THREAD = 115; + + /** + * Invalid object type id or class tag + */ + public static final short INVALID_TAG = 500; + + /** + * Previous invoke not complete + */ + public static final short ALREADY_INVOKING = 502; + + /** + * Invalid index + */ + public static final short INVALID_INDEX = 503; + + /** + * Invalid length + */ + public static final short INVALID_LENGTH = 504; + + /** + * Invalid string + */ + public static final short INVALID_STRING = 506; + + /** + * Invalid class loader + */ + public static final short INVALID_CLASS_LOADER = 507; + + /** + * Invalid array + */ + public static final short INVALID_ARRAY = 508; + + /** + * Unable to load the transport + */ + public static final short TRANSPORT_LOAD = 509; + + /** + * Unablie to initialize the transport + */ + public static final short TRANSPORT_INIT = 510; + + /** + * Method is native + */ + public static final short NATIVE_METHOD = 511; + + /** + * Invalid count + */ + public static final short INVALID_COUNT = 512; + } + + /* + * EventKind constants + */ + public static final class EventKind + { + public static final byte SINGLE_STEP = 1; + public static final byte BREAKPOINT = 2; + public static final byte FRAME_POP = 3; + public static final byte EXCEPTION = 4; + public static final byte USER_DEFINED = 5; + public static final byte THREAD_START = 6; + public static final byte THREAD_END = 7; + public static final byte CLASS_PREPARE = 8; + public static final byte CLASS_UNLOAD = 9; + public static final byte CLASS_LOAD = 10; + public static final byte FIELD_ACCESS = 20; + public static final byte FIELD_MODIFICATION = 21; + public static final byte EXCEPTION_CATCH = 30; + public static final byte METHOD_ENTRY = 40; + public static final byte METHOD_EXIT = 41; + public static final byte VM_INIT = 90; + public static final byte VM_DEATH = 99; + public static final byte VM_DISCONNECTED = 100; + + public static final byte VM_START = VM_INIT; + public static final byte THREAD_DEATH = THREAD_END; + } + + /* + * ModKind constants (event filters) + */ + public static final class ModKind + { + /** + * Limit the requested event to be reported at most once after a + * given number of occurrences. May be used with any event. + */ + public static final byte COUNT = 1; + + /** + * Conditional on expression + */ + public static final byte CONDITIONAL = 2; + + /** + * Restricts reported events to those in the given thread. + * May be used with any event except for class unload. + */ + public static final byte THREAD_ONLY = 3; + + /** + * For class prepare events, restricts generated events + * to be the preparation of the given reference type and any + * subtypes. + * + * For other events, restricts the generated events to those where + * location is in the given reference type or any of its subtypes. + * + * An event will be generated for any location in a reference type + * that can be safely cast to the given reference type. + * + * May be used with any event except class unload, thread start, + * and thread end. + */ + public static final byte CLASS_ONLY = 4; + + /** + * Restricts reported events to those for classes whose name matches + * the given restricted regular expression. + * + * For class prepare events, the prepared class name is matched. + * For class unload events, the unloaded class name is matched. + * For other events, the class name of the event's location is matched. + * + * May be used with any event except thread start and thread end. + */ + public static final byte CLASS_MATCH = 5; + + /** + * Restricts reported events to those for classes whose name does not + * match the given restricted regular expression. + * + * For class prepare events, the prepared class name is matched. + * For class unload events, the unloaded class name is matched. + * For other events, the class name of the event's location is matched. + * + * May be used with any event except thread start and thread end. + */ + public static final byte CLASS_EXCLUDE = 6; + + /** + * Restricts reported events to those that occur at the given location. + * + * May be used with breakpoint, field access, field modification, step, + * and exception event kinds. + */ + public static final byte LOCATION_ONLY = 7; + + /** + * Restricts reported exceptions by their class and whether they are + * caught or uncaught. + * + * May be used with exception event kinds only. + */ + public static final byte EXCEPTION_ONLY = 8; + + /** + * Restricts reported events to those that occur for a given field. + * + * May be used with field access and field modification event kinds only. + */ + public static final byte FIELD_ONLY = 9; + + /** + * Restricts reported step events to those which satisfy depth and + * size constraints. + * + * May be used with step event kinds only. + */ + public static final byte STEP = 10; + + /** + * Restricts reported events to those whose active 'this' object is + * the given object. Match value is the null object for static methods. + * + * May be used with any event except class prepare, class unload, + * thread start, and thread end. + */ + public static final byte INSTANCE_ONLY = 11; + } + + /* + * ThreadStatus constants + */ + public static final class ThreadStatus + { + public static final int ZOMBIE = 0; + public static final int RUNNING = 1; + public static final int SLEEPING = 2; + public static final int MONITOR = 3; + public static final int WAIT = 4; + } + + /* + * SuspendStatus constants + */ + public static final class SuspendStatus + { + public static final byte SUSPENDED = 1; + } + + /* + * ClassStatus constants + */ + public static final class ClassStatus + { + public static final int VERIFIED = 1; + public static final int PREPARED = 2; + public static final int INITIALIZED = 4; + public static final int ERROR = 8; + } + + /* + * TypeTag constants + */ + public static final class TypeTag + { + public static final byte CLASS = 1; + public static final byte INTERFACE = 2; + public static final byte ARRAY = 3; + } + + /* + * Tag constants + */ + public static final class Tag + { + /** + * Array object (objectID size) + */ + public static final byte ARRAY = '['; + + /** + * Byte value (1 byte) + */ + public static final byte BYTE = 'B'; + + /** + * Character value (2 bytes) + */ + public static final byte CHAR = 'C'; + + /** + * Object (objectID size) + */ + public static final byte OBJECT = 'L'; + + /** + * Float value (4 bytes) + */ + public static final byte FLOAT = 'F'; + + /** + * Double value (8 bytes) + */ + public static final byte DOUBLE = 'D'; + + /** + * Int value (4 bytes) + */ + public static final byte INT = 'I'; + + /** + * Long value (8 bytes) + */ + public static final byte LONG = 'J'; + + /** + * Short value (2 bytes) + */ + public static final byte SHORT = 'S'; + + /** + * Void value (no bytes) + */ + public static final byte VOID = 'V'; + + /** + * Boolean value (1 byte) + */ + public static final byte BOOLEAN = 'Z'; + + /** + * String object (objectID size) + */ + public static final byte STRING = 's'; + + /** + * Thread object (objectID size) + */ + public static final byte THREAD = 't'; + + /** + * ThreadGroup object (objectID size) + */ + public static final byte THREAD_GROUP = 'g'; + + /** + * ClassLoader object (objectID size) + */ + public static final byte CLASS_LOADER = 'l'; + + /** + * Class object object (objectID size) + */ + public static final byte CLASS_OBJECT = 'c'; + } + + /* + * StepDepth constants + */ + public static final class StepDepth + { + /** + * Step into any method calls that occur before the end of the step + */ + public static final int INTO = 0; + + /** + * Step over any method calls that occur before the end of the step + */ + public static final int OVER = 1; + + /** + * Step out of the current method + */ + public static final int OUT = 2; + } + + /* + * StepSize constants + */ + public static final class StepSize + { + /** + * Step by the minimum possible amount (often a bytecode instruction) + */ + public static final int MIN = 0; + + /** + * Step to the next source line unless there is no line number information, + * in which case MIN step is done instead + */ + public static final int LINE = 1; + } + + /* + * SuspendPolicy constants + */ + public static final class SuspendPolicy + { + /** + * Suspend no threads when this event is encountered + */ + public static final byte NONE = 0; + + /** + * Suspend the event thread when this event is encountered + */ + public static final byte EVENT_THREAD = 1; + + /** + * Suspend all threads when this event is encountered + */ + public static final byte ALL = 2; + } + + /* + * InvokeOptions flag constants + */ + public static final class InvokeOptions + { + /** + * otherwise, all threads started + */ + public static final int INVOKE_SINGLE_THREADED = 0x1; + + /** + * otherwise, normal virtual invoke (instance methods only) + */ + public static final int INVOKE_NONVIRTUAL = 0x2; + } +} |