예제 #1
0
 public JvmRemoteLocation(JvmMethodRemoteHandle method, jlocation location)
 {
     Method = method;
     Location = location;
 }
예제 #2
0
 internal JvmLineNumberEntry(JvmMethodRemoteHandle method, jvmtiLineNumberEntry entry)
 {
     StartLocation = new JvmRemoteLocation(method, entry.StartLocation);
     LineNumber    = entry.LineNumber;
 }
예제 #3
0
 internal JvmLineNumberEntry(JvmMethodRemoteHandle method, jvmtiLineNumberEntry entry)
 {
     StartLocation = new JvmRemoteLocation(method, entry.StartLocation);
     LineNumber = entry.LineNumber;
 }
예제 #4
0
 public JvmRemoteLocation(JvmMethodRemoteHandle method, jlocation location)
 {
     Method   = method;
     Location = location;
 }
예제 #5
0
 public jvmtiError IsMethodSynthetic(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out bool isSynthetic)
 {
     throw new NotImplementedException();
 }
예제 #6
0
 public jvmtiError IsMethodObsolete(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out bool isObsolete)
 {
     throw new NotImplementedException();
 }
예제 #7
0
 public jvmtiError GetLocalVariableTable(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out JvmLocalVariableEntry[] localVariables)
 {
     throw new NotImplementedException();
 }
예제 #8
0
 public jvmtiError GetBytecodes(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out byte[] bytecode)
 {
     throw new NotImplementedException();
 }
예제 #9
0
        public jvmtiError GetLineNumberTable(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out JvmLineNumberEntry[] lineNumbers)
        {
            JavaVM machine = JavaVM.GetInstance(virtualMachine);

            List <JvmLineNumberEntry> lineNumbersList = new List <JvmLineNumberEntry>();
            jvmtiError result = jvmtiError.Internal;

            machine.InvokeOnJvmThread(
                (environment) =>
            {
                jvmtiInterface rawInterface = environment.RawInterface;

                IntPtr lineNumbersPtr = IntPtr.Zero;
                try
                {
                    int entryCount;
                    result = rawInterface.GetLineNumberTable(environment.Handle, (jmethodID)method, out entryCount, out lineNumbersPtr);

                    unsafe
                    {
                        jvmtiLineNumberEntry *rawLineNumbers = (jvmtiLineNumberEntry *)lineNumbersPtr;
                        for (int i = 0; i < entryCount; i++)
                        {
                            lineNumbersList.Add(new JvmLineNumberEntry(method, rawLineNumbers[i]));
                        }
                    }
                }
                finally
                {
                    rawInterface.Deallocate(environment.Handle, lineNumbersPtr);
                }
            });

            lineNumbers = lineNumbersList.ToArray();
            return(result);
        }
예제 #10
0
 public jvmtiError GetMethodLocation(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out JvmRemoteLocation startLocation, out JvmRemoteLocation endLocation)
 {
     throw new NotImplementedException();
 }
예제 #11
0
 public jvmtiError GetArgumentsSize(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out int size)
 {
     throw new NotImplementedException();
 }
예제 #12
0
 public jvmtiError GetMaxLocals(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out int maxLocals)
 {
     throw new NotImplementedException();
 }
예제 #13
0
 public jvmtiError GetMethodModifiers(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out JvmAccessModifiers modifiers)
 {
     throw new NotImplementedException();
 }
예제 #14
0
 public jvmtiError GetMethodDeclaringClass(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out JvmClassRemoteHandle declaringClass)
 {
     throw new NotImplementedException();
 }
예제 #15
0
 public jvmtiError GetMethodName(JvmVirtualMachineRemoteHandle virtualMachine, JvmMethodRemoteHandle method, out string name, out string signature, out string generic)
 {
     throw new NotImplementedException();
 }