Struct JVMTIEnv

Source
pub struct JVMTIEnv<'a> { /* private fields */ }

Implementations§

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn set_breakpoint<M>( &self, jni: &JNIEnv<'a>, method: M, location: jlocation, ) -> Result<()>
where M: Transform<'a, jmethodID>,

Source

pub fn clear_breakpoint<M>( &self, jni: &JNIEnv<'a>, method: M, location: jlocation, ) -> Result<()>
where M: Transform<'a, jmethodID>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn set_breakpoint_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, location: jlocation, ) -> Result<()>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn clear_breakpoint_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, location: jlocation, ) -> Result<()>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn set_breakpoint_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, location: jlocation, ) -> Result<()>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn clear_breakpoint_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, location: jlocation, ) -> Result<()>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_loaded_classes(&self) -> Result<Vec<JClass<'_>>>

Source

pub fn get_class_loader_classes( &self, initiating_loader: &JObject<'_>, ) -> Result<Vec<JClass<'_>>>

Source

pub fn retransform_classes(&self, classes: &Vec<JClass<'_>>) -> Result<()>

Source

pub fn redefine_classes( &self, classes: &Vec<JClassDefinition<'_>>, ) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_class<S>(&self, jni: &JNIEnv<'a>, name: S) -> Result<JClass<'_>>
where S: Into<JNIString>,

Source

pub fn get_class_signature<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JSignature<'_>>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_class_status<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JvmtiClassStatus>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_source_file_name<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<String>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_class_modifiers<K>(&self, jni: &JNIEnv<'a>, class: K) -> Result<jint>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_class_methods<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<Vec<JMethodID<'_>>>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_class_fields<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<Vec<JFieldID<'_>>>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_implemented_interfaces<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<Vec<JClass<'_>>>
where K: Transform<'a, JClass<'a>>,

Source

pub fn is_interface<K>(&self, jni: &JNIEnv<'a>, class: K) -> Result<bool>
where K: Transform<'a, JClass<'a>>,

Source

pub fn is_array_class<K>(&self, jni: &JNIEnv<'a>, class: K) -> Result<bool>
where K: Transform<'a, JClass<'a>>,

Source

pub fn is_modifiable_class<K>(&self, jni: &JNIEnv<'a>, class: K) -> Result<bool>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_source_debug_extension<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<String>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_class_loader<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JClassLoader<'_>>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_constant_pool<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JConstantPool<'_>>
where K: Transform<'a, JClass<'a>>,

Source

pub fn get_class_version_numbers<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JClassVersionNumber<'_>>
where K: Transform<'a, JClass<'a>>,

Source§

impl<'a> JVMTIEnv<'a>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn set_event_callbacks(&self, callbacks: &JEventCallbacks<'_>) -> Result<()>

Source

pub fn set_event_notification_mode( &self, mode: JvmtiEventMode, event_type: JvmtiEvent, event_thread: &Option<JThreadID<'_>>, ) -> Result<()>

Source

pub fn generate_events(&self, event_type: JvmtiEvent) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_field_id<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<(JClass<'_>, JFieldID<'_>)>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_static_field_id<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<(JClass<'_>, JStaticFieldID<'_>)>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_field_name<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<JFieldName<'_>>
where K: Transform<'a, JClass<'a>>, F: Transform<'a, jfieldID>,

Source

pub fn get_field_declaring_class<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<JObject<'_>>
where K: Transform<'a, JClass<'a>>, F: Transform<'a, jfieldID>,

Source

pub fn get_field_modifiers<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<jint>
where K: Transform<'a, JClass<'a>>, F: Transform<'a, jfieldID>,

Source

pub fn is_field_synthetic<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<bool>
where K: Transform<'a, JClass<'a>>, F: Transform<'a, jfieldID>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_field_declaring_class_i<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<JObject<'_>>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_field_modifiers_i<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<jint>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn is_field_synthetic_i<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<bool>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_field_declaring_class_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<JObject<'_>>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_field_modifiers_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<jint>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn is_field_synthetic_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<bool>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn force_early_return_object( &self, thread: &JThreadID<'_>, value: &JObject<'_>, ) -> Result<()>

Source

pub fn force_early_return_int( &self, thread: &JThreadID<'_>, value: jint, ) -> Result<()>

Source

pub fn force_early_return_long( &self, thread: &JThreadID<'_>, value: jlong, ) -> Result<()>

Source

pub fn force_early_return_float( &self, thread: &JThreadID<'_>, value: jfloat, ) -> Result<()>

Source

pub fn force_early_return_double( &self, thread: &JThreadID<'_>, value: jdouble, ) -> Result<()>

Source

pub fn force_early_return_void(&self, thread: &JThreadID<'_>) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_tag(&self, object: &JObject<'_>) -> Result<jlong>

Source

pub fn set_tag(&self, object: &JObject<'_>, tag: jlong) -> Result<()>

Source

pub fn get_objects_with_tags( &self, tags: &Vec<jlong>, ) -> Result<Vec<JTagObject<'_>>>

Source

pub fn force_garbage_collection(&self) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn iterate_over_objects_reachable_from_object( &self, object: &JObject<'_>, callback: jvmtiObjectReferenceCallback, user_data: *const c_void, ) -> Result<()>

Source

pub fn iterate_over_reachable_objects( &self, heap_root_callback: jvmtiHeapRootCallback, stack_ref_callback: jvmtiStackReferenceCallback, object_ref_callback: jvmtiObjectReferenceCallback, user_data: *const c_void, ) -> Result<()>

Source

pub fn iterate_over_heap( &self, object_filter: jvmtiHeapObjectFilter, heap_object_callback: jvmtiHeapObjectCallback, user_data: *const c_void, ) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn iterate_over_instances_of_class<K>( &self, jni: &JNIEnv<'a>, class: K, object_filter: jvmtiHeapObjectFilter, heap_object_callback: jvmtiHeapObjectCallback, user_data: *const c_void, ) -> Result<()>
where K: Transform<'a, JClass<'a>>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn follow_references<K>( &self, jni: &JNIEnv<'a>, heap_filter: jint, class: K, initial_object: &JObject<'_>, callbacks: &Vec<jvmtiHeapCallbacks>, user_data: *const c_void, ) -> Result<()>
where K: Transform<'a, JClass<'a>>,

Source

pub fn iterate_through_heap<K>( &self, jni: &JNIEnv<'a>, heap_filter: jint, class: K, callbacks: &Vec<jvmtiHeapCallbacks>, user_data: *const c_void, ) -> Result<()>
where K: Transform<'a, JClass<'a>>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn set_jni(&self, jni: &JNIEnv) -> Result<()>

Source

pub fn get_jni(&self) -> Result<JNIEnv<'a>>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_local_instance( &self, thread: &JThreadID<'_>, depth: jint, ) -> Result<Option<JObject<'_>>>

Source

pub fn get_local_object( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<Option<JObject<'_>>>

Source

pub fn get_local_int( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<jint>

Source

pub fn get_local_long( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<jlong>

Source

pub fn get_local_float( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<jfloat>

Source

pub fn get_local_double( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<jdouble>

Source

pub fn set_local_object( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, obj: &Option<JObject<'_>>, ) -> Result<()>

Source

pub fn set_local_int( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, value: jint, ) -> Result<()>

Source

pub fn set_local_long( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, value: jlong, ) -> Result<()>

Source

pub fn set_local_float( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, value: jfloat, ) -> Result<()>

Source

pub fn set_local_double( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, value: jdouble, ) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn allocate(&self, size: jlong) -> Result<Option<JMemoryAllocate<'_>>>

Source

pub fn deallocate_raw(&self, memory: jmemory) -> Result<()>

Source

pub fn deallocate<T>(&self, memory: &T) -> Result<()>
where T: JDeallocate<'a>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn set_native_method_prefix<S>(&self, prefix: S) -> Result<()>
where S: Into<JNIString>,

Source

pub fn set_native_method_prefixes<S>(&self, prefixes: &Vec<S>) -> Result<()>
where S: Into<JNIString> + AsRef<str>,

Source

pub fn get_method_name<M>(&self, method: M) -> Result<JMethodName<'_>>

Source

pub fn get_method_declaring_class<M>(&self, method: M) -> Result<JObject<'_>>

Source

pub fn get_method_modifiers<M>(&self, method: M) -> Result<jint>

Source

pub fn get_max_locals<M>(&self, method: M) -> Result<jint>

Source

pub fn get_arguments_size<M>(&self, method: M) -> Result<jint>

Source

pub fn get_line_number_table<M>( &self, method: M, ) -> Result<Vec<JLineNumberEntry<'_>>>

Source

pub fn get_method_location<M>(&self, method: M) -> Result<JMethodLocation<'_>>

Source

pub fn get_local_variable_table<M>( &self, method: M, ) -> Result<Vec<JLocalVariableEntry<'_>>>

Source

pub fn get_bytecodes<M>(&self, method: M) -> Result<JMemoryAllocate<'_>>

Source

pub fn is_method_native<M>(&self, method: M) -> Result<bool>

Source

pub fn is_method_synthetic<M>(&self, method: M) -> Result<bool>

Source

pub fn is_method_obsolete<M>(&self, method: M) -> Result<bool>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_method_declaring_class_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JObject<'_>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_method_modifiers_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_max_locals_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_arguments_size_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_line_number_table_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<Vec<JLineNumberEntry<'_>>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_method_location_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMethodLocation<'_>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_local_variable_table_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<Vec<JLocalVariableEntry<'_>>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_bytecodes_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMemoryAllocate<'_>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn is_method_native_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn is_method_synthetic_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn is_method_obsolete_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_method_id<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMethodID<'_>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_static_method_id<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JStaticMethodID<'_>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_method_declaring_class_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JObject<'_>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_method_modifiers_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_max_locals_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_arguments_size_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_line_number_table_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<Vec<JLineNumberEntry<'_>>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_method_location_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMethodLocation<'_>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_local_variable_table_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<Vec<JLocalVariableEntry<'_>>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn get_bytecodes_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMemoryAllocate<'_>>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn is_method_native_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn is_method_synthetic_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source

pub fn is_method_obsolete_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
where K: Transform<'a, JClass<'a>>, M: Into<JNIString>, V: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_object_size(&self, obj: &JObject<'_>) -> Result<jlong>

Source

pub fn get_object_hash_code(&self, obj: &JObject<'_>) -> Result<jint>

Source

pub fn get_object_monitor_usage( &self, obj: &JObject<'_>, ) -> Result<JMonitorUsage<'_>>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn create_raw_monitor<N>( &self, name: N, ) -> Result<Option<JRawMonitorID<'_>>>
where N: Into<JNIString>,

Source

pub fn destroy_raw_monitor(&self, monitor_id: &JRawMonitorID<'_>) -> Result<()>

Source

pub fn raw_monitor_enter(&self, monitor_id: &JRawMonitorID<'_>) -> Result<()>

Source

pub fn raw_monitor_exit(&self, monitor_id: &JRawMonitorID<'_>) -> Result<()>

Source

pub fn raw_monitor_wait( &self, monitor_id: &JRawMonitorID<'_>, millis: jlong, ) -> Result<()>

Source

pub fn raw_monitor_notify(&self, monitor_id: &JRawMonitorID<'_>) -> Result<()>

Source

pub fn raw_monitor_notify_all( &self, monitor_id: &JRawMonitorID<'_>, ) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_stack_trace( &self, thread: &JThreadID<'_>, start_depth: jint, max_frame_count: jint, ) -> Result<(JFrameInfo<'_>, jint)>

Source

pub fn get_all_stack_traces( &self, max_frame_count: jint, ) -> Result<(Vec<JStackInfo<'_>>, jint)>

Source

pub fn get_thread_list_stack_traces( &self, threads: &Vec<JThreadID<'_>>, max_frame_count: jint, ) -> Result<Vec<JStackInfo<'_>>>

Source

pub fn get_frame_count(&self, thread: &JThreadID<'_>) -> Result<jint>

Source

pub fn get_frame_location( &self, thread: &JThreadID<'_>, depth: jint, ) -> Result<Option<JFrameInfo<'_>>>

Source

pub fn pop_frame(&self, thread: &JThreadID<'_>) -> Result<()>

Source

pub fn notify_frame_pop( &self, thread: &JThreadID<'_>, depth: jint, ) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_system_properties(&self) -> Result<Vec<String>>

Source

pub fn get_system_property<S>(&self, property: S) -> Result<String>
where S: Into<JNIString>,

Source

pub fn set_system_property<S>(&self, property: S, value: S) -> Result<()>
where S: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_thread_state( &self, thread: &JThreadID<'_>, ) -> Result<JvmtiThreadState>

Source

pub fn get_current_thread(&self) -> Result<Option<JThreadID<'_>>>

Source

pub fn get_all_threads(&self) -> Result<Vec<JThreadID<'_>>>

Source

pub fn suspend_thread(&self, thread: &JThreadID<'_>) -> Result<()>

Source

pub fn resume_thread(&self, thread: &JThreadID<'_>) -> Result<()>

Source

pub fn stop_thread( &self, thread: &JThreadID<'_>, exception: &JThrowable<'_>, ) -> Result<()>

Source

pub fn interrupt_thread(&self, thread: &JThreadID<'_>) -> Result<()>

Source

pub fn suspend_thread_list( &self, threads: &Vec<JThreadID<'_>>, ) -> Result<JvmtiError>

Source

pub fn resume_thread_list( &self, threads: &Vec<JThreadID<'_>>, ) -> Result<JvmtiError>

Source

pub fn get_thread_info(&self, thread: &JThreadID<'_>) -> Result<JThreadInfo<'_>>

Source

pub fn get_owned_monitor_info( &self, thread: &JThreadID<'_>, ) -> Result<Vec<JObject<'_>>>

Source

pub fn get_owned_monitor_stack_depth_info( &self, thread: &JThreadID<'_>, ) -> Result<Vec<JMonitorStackDepthInfo<'_>>>

Source

pub fn get_current_contended_monitor( &self, thread: &JThreadID<'_>, ) -> Result<Option<JObject<'_>>>

Source

pub fn run_agent_thread( &self, thread: &JThreadID<'_>, proc: jvmtiStartFunction, arg: *const c_void, priority: JvmtiThreadPriority, ) -> Result<()>

Source

pub fn get_thread_local_storage( &self, thread: &JThreadID<'_>, ) -> Result<JLocalStorage<'_>>

Source

pub fn set_thread_local_storage( &self, thread: &JThreadID<'_>, data: &JLocalStorage<'_>, ) -> Result<()>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn get_top_thread_groups(&self) -> Result<Vec<JThreadGroupID<'_>>>

Source

pub fn get_thread_group_info( &self, thread_group: &JThreadGroupID<'_>, ) -> Result<JThreadGroupInfo<'_>>

Source

pub fn get_thread_group_children( &self, thread_group: &JThreadGroupID<'_>, ) -> Result<(Vec<JThreadID<'_>>, Vec<JThreadGroupID<'_>>)>

Source§

impl<'a> JVMTIEnv<'a>

Source§

impl<'a> JVMTIEnv<'a>

Source

pub fn set_field_access_watch<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<()>
where K: Transform<'a, JClass<'a>>, F: AdapterTransform<jfieldID>,

Source

pub fn clear_field_access_watch<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<()>
where K: Transform<'a, JClass<'a>>, F: AdapterTransform<jfieldID>,

Source

pub fn set_field_modification_watch<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<()>
where K: Transform<'a, JClass<'a>>, F: AdapterTransform<jfieldID>,

Source

pub fn clear_field_modification_watch<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<()>
where K: Transform<'a, JClass<'a>>, F: AdapterTransform<jfieldID>,

Source

pub fn set_field_access_watch_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<()>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn clear_field_access_watch_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<()>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn set_field_modification_watch_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<()>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source

pub fn clear_field_modification_watch_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<()>
where K: Into<JNIString>, F: Into<JNIString>, V: Into<JNIString>,

Source§

impl<'a> JVMTIEnv<'a>

Source

pub unsafe fn from_raw(ptr: *mut jvmtiEnv) -> Result<Self>

Source

pub fn jvmti_raw(&self) -> *mut jvmtiEnv

Source

pub fn build_string(&self, value: *mut c_char) -> Result<JvmtiString<'_>>

Source

pub fn define_class_definition( &self, klass: JClass<'a>, size: jlong, code_bytes: jmemory, ) -> Result<JClassDefinition<'_>>

Trait Implementations§

Source§

impl<'a> Clone for JVMTIEnv<'a>

Source§

fn clone(&self) -> JVMTIEnv<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for JVMTIEnv<'a>

§

impl<'a> RefUnwindSafe for JVMTIEnv<'a>

§

impl<'a> !Send for JVMTIEnv<'a>

§

impl<'a> !Sync for JVMTIEnv<'a>

§

impl<'a> Unpin for JVMTIEnv<'a>

§

impl<'a> UnwindSafe for JVMTIEnv<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<'a, T> Desc<'a, T> for T

Source§

fn lookup(self, _: &JNIEnv<'a>) -> Result<T, Error>

Different

Source§

impl<'a, T> Desc<'a, T> for T

Source§

fn lookup(self, _: &JNIEnv<'a>) -> Result<T, Error>

Look up the concrete type from the JVM.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.