private void HandleBreakpoint(jvmtiEnvHandle env, JNIEnvHandle jniEnv, jthread threadHandle, jmethodID method, jlocation jlocation) { JvmEnvironment environment = JvmEnvironment.GetEnvironment(env); JvmThreadReference thread = JvmThreadReference.FromHandle(environment, jniEnv, threadHandle, true); JvmLocation location = new JvmLocation(environment, method, jlocation); foreach (var processor in _processors) { processor.HandleBreakpoint(environment, thread, location); } }
private void HandleExceptionCatch(jvmtiEnvHandle env, JNIEnvHandle jniEnv, jthread threadHandle, jmethodID method, jlocation jlocation, jobject exceptionHandle) { JvmEnvironment environment = JvmEnvironment.GetEnvironment(env); JvmThreadReference thread = JvmThreadReference.FromHandle(environment, jniEnv, threadHandle, true); JvmLocation location = new JvmLocation(environment, method, jlocation); JvmObjectReference exception = JvmObjectReference.FromHandle(environment, jniEnv, exceptionHandle, true); foreach (var processor in _processors) { processor.HandleExceptionCatch(environment, thread, location, exception); } }
private void HandleFieldModification(jvmtiEnvHandle env, JNIEnvHandle jniEnv, jthread threadHandle, jmethodID method, jlocation jlocation, jclass fieldClassHandle, jobject @objectHandle, jfieldID fieldId, byte signatureType, jvalue newValue) { JvmEnvironment environment = JvmEnvironment.GetEnvironment(env); JvmThreadReference thread = JvmThreadReference.FromHandle(environment, jniEnv, threadHandle, true); JvmLocation location = new JvmLocation(environment, method, jlocation); JvmClassReference fieldClass = JvmClassReference.FromHandle(environment, jniEnv, fieldClassHandle, true); JvmObjectReference @object = JvmObjectReference.FromHandle(environment, jniEnv, objectHandle, true); JvmField field = new JvmField(environment, fieldId); foreach (var processor in _processors) { processor.HandleFieldModification(environment, thread, location, fieldClass, @object, field, signatureType, newValue); } }
internal JvmAddressLocationMap(JvmLocation location, IntPtr startAddress) { Location = location; StartAddress = startAddress; }
public virtual void HandleSingleStep(JvmEnvironment environment, JvmThreadReference thread, JvmLocation location) { }
public virtual void HandleExceptionCatch(JvmEnvironment environment, JvmThreadReference thread, JvmLocation location, JvmObjectReference exception) { }
public virtual void HandleFieldModification(JvmEnvironment environment, JvmThreadReference thread, JvmLocation location, JvmClassReference fieldClass, JvmObjectReference @object, JvmField field, byte signatureType, jvalue newValue) { }
public virtual void HandleFieldAccess(JvmEnvironment environment, JvmThreadReference thread, JvmLocation location, JvmClassReference fieldClass, JvmObjectReference @object, JvmField field) { }
public virtual void HandleBreakpoint(JvmEnvironment environment, JvmThreadReference thread, JvmLocation location) { }