diff options
Diffstat (limited to 'libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java')
-rw-r--r-- | libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java | 68 |
1 files changed, 29 insertions, 39 deletions
diff --git a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java index aa285cb58a6..d8616063d19 100644 --- a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java +++ b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java @@ -1,7 +1,7 @@ /* VMVirtualMachine.java -- A reference implementation of a JDWP virtual machine - Copyright (C) 2005 Free Software Foundation + Copyright (C) 2005, 2006 Free Software Foundation This file is part of GNU Classpath. @@ -42,16 +42,9 @@ 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.exception.InvalidClassException; -import gnu.classpath.jdwp.exception.InvalidObjectException; -import gnu.classpath.jdwp.id.ObjectId; -import gnu.classpath.jdwp.id.ReferenceTypeId; -import gnu.classpath.jdwp.util.LineTable; import gnu.classpath.jdwp.util.MethodResult; -import gnu.classpath.jdwp.util.VariableTable; - -import java.io.IOException; import java.lang.reflect.Method; import java.nio.ByteBuffer; import java.util.ArrayList; @@ -80,7 +73,7 @@ public class VMVirtualMachine { // Our JDWP thread group -- don't suspend any of those threads Thread current = Thread.currentThread (); - ThreadGroup jdwpGroup = current.getThreadGroup (); + ThreadGroup jdwpGroup = Jdwp.getDefault().getJdwpThreadGroup(); // Find the root ThreadGroup ThreadGroup group = jdwpGroup; @@ -112,7 +105,8 @@ public class VMVirtualMachine } // Now suspend the current thread - suspendThread (current); + if (current.getThreadGroup() != jdwpGroup) + suspendThread (current); } /** @@ -197,6 +191,29 @@ public class VMVirtualMachine 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) + { return null; } + + /** + * 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) + { return null; } /** * Returns the thread's call stack @@ -206,7 +223,7 @@ public class VMVirtualMachine * @param length number of frames to return (-1 for all frames) * @return a list of frames */ - public static native ArrayList getFrames (Thread thread, int strart, + public static native ArrayList getFrames (Thread thread, int start, int length) throws JdwpException; @@ -272,33 +289,6 @@ public class VMVirtualMachine 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." - * - * @param clazz the class in which the method is defined - * @param method the method for which variable information is desired - * @return a result object containing the information - */ - public static native VariableTable getVarTable (Class clazz, Method method) - throws JdwpException; - - /** - * "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." - * - * @param clazz the class in which the method is defined - * @param method the method whose line table is desired - * @return a result object containing the line table - */ - public static native LineTable getLineTable (Class clazz, Method method) - 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 |