Skip to content

Latest commit

 

History

History
91 lines (71 loc) · 2.5 KB

File metadata and controls

91 lines (71 loc) · 2.5 KB

Public API Report

(Generated by scripts/public_api_report.sh)

This report summarizes the intended public surface of jvmti-bindings.

Top-Level Exports

  1. Agent trait
  2. export_agent! macro
  3. get_default_callbacks
  4. jni re-export (crate::sys::jni)
  5. describe_jni_result
  6. Modules: env, sys, classfile, prelude, embed (feature-gated), advanced (feature-gated)

env Module

Public types:

  1. Jvmti
  2. JniEnv
  3. LocalRef
  4. GlobalRef
  5. ThreadInfo
  6. ThreadGroupInfo
  7. MonitorUsage
  8. StackInfo
  9. ExtensionParamInfo
  10. ExtensionFunctionInfo
  11. ExtensionEventInfo
  12. LocalVariableEntry

Common Jvmti helper methods:

  1. set_default_agent_callbacks
  2. add_class_file_load_hook_capabilities
  3. add_method_trace_capabilities
  4. add_exception_capabilities
  5. add_heap_sampling_capabilities
  6. enable_class_file_load_hook_events
  7. enable_method_entry_exit_events
  8. enable_exception_events
  9. enable_heap_sampling_events
  10. enable_vm_lifecycle_events
  11. configure_class_file_load_hook_agent
  12. configure_method_trace_agent
  13. configure_exception_agent
  14. configure_heap_sampling_agent
  15. get_error_name_string

sys Module

  1. sys::jni - Raw JNI types, constants, and function tables.
  2. sys::jvmti - Raw JVMTI types, constants, and function tables.
  3. Diagnostics: jni::result_name, jni::describe_result, jvmti::error_name.
  4. Capability presets: jvmtiCapabilities::for_class_file_load_hook, for_method_trace, for_exceptions, for_heap_sampling.

Note: sys mirrors JNI/JVMTI headers and may grow with new JDK versions.

classfile Module

  1. ClassFile and supporting structs/enums for all standard Java 8-27 attributes.
  2. ClassFile::parse(bytes) entry point.

prelude Module

Recommended imports for agent authors:

  1. Agent, export_agent!, get_default_callbacks
  2. env::{Jvmti, JniEnv, LocalRef, GlobalRef}
  3. sys::{jni, jvmti}
  4. embed::{JavaVmBuilder, JavaVm, AttachedThread} when the embed feature is enabled

embed Module

Feature-gated JVM embedding helpers (embed feature):

  1. JavaVmBuilder
  2. JavaVm
  3. AttachedThread
  4. find_libjvm
  5. find_libjvm_verbose
  6. EmbedError

advanced Module

Feature-gated helpers (disabled by default):

  1. advanced::heap_graph (heap-graph feature)

Stability Notes

  1. env and top-level exports are intended to be stable.
  2. sys is a low-level mirror of JNI/JVMTI C headers.
  3. advanced is explicitly allowed to change more rapidly.