src/share/vm/prims/jvmti.xml

Print this page

        

*** 402,412 **** The Java Platform Debugger Architecture includes <jvmti/>, but also contains higher-level, out-of-process debugger interfaces. The higher-level interfaces are more appropriate than <jvmti/> for many tools. For more information on the Java Platform Debugger Architecture, see the ! <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html">Java Platform Debugger Architecture website</externallink>. </intro> <intro id="writingAgents" label="Writing Agents"> Agents can be written in any native language that supports C --- 402,412 ---- The Java Platform Debugger Architecture includes <jvmti/>, but also contains higher-level, out-of-process debugger interfaces. The higher-level interfaces are more appropriate than <jvmti/> for many tools. For more information on the Java Platform Debugger Architecture, see the ! <externallink id="docs/technotes/guides/jpda/architecture.html">Java Platform Debugger Architecture website</externallink>. </intro> <intro id="writingAgents" label="Writing Agents"> Agents can be written in any native language that supports C
*** 762,772 **** the likelihood of these occurrences are beyond the scope of this document. <p/> An agent creates a <jvmti/> environment by passing a <jvmti/> version as the interface ID to the JNI Invocation API function ! <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/invocation.html#GetEnv"><code>GetEnv</code></externallink>. See <internallink id="jvmtiEnvAccess">Accessing <jvmti/> Functions</internallink> for more details on the creation and use of <jvmti/> environments. Typically, <jvmti/> environments are created by calling <code>GetEnv</code> from <internallink id="onload"><code>Agent_OnLoad</code></internallink>. --- 762,773 ---- the likelihood of these occurrences are beyond the scope of this document. <p/> An agent creates a <jvmti/> environment by passing a <jvmti/> version as the interface ID to the JNI Invocation API function ! <externallink id="docs/technotes/guides/jni/spec/invocation.html#GetEnv"> ! <code>GetEnv</code></externallink>. See <internallink id="jvmtiEnvAccess">Accessing <jvmti/> Functions</internallink> for more details on the creation and use of <jvmti/> environments. Typically, <jvmti/> environments are created by calling <code>GetEnv</code> from <internallink id="onload"><code>Agent_OnLoad</code></internallink>.
*** 883,893 **** <jvmti/> uses modified UTF-8 to encode character strings. This is the same encoding used by JNI. Modified UTF-8 differs from standard UTF-8 in the representation of supplementary characters and of the null character. See the ! <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html#wp16542"> Modified UTF-8 Strings</externallink> section of the JNI specification for details. </intro> <intro id="context" label="Specification Context"> --- 884,894 ---- <jvmti/> uses modified UTF-8 to encode character strings. This is the same encoding used by JNI. Modified UTF-8 differs from standard UTF-8 in the representation of supplementary characters and of the null character. See the ! <externallink id="docs/technotes/guides/jni/spec/types.html#modified_utf_8_strings"> Modified UTF-8 Strings</externallink> section of the JNI specification for details. </intro> <intro id="context" label="Specification Context">
*** 913,923 **** <intro id="jvmtiEnvAccess" label="Accessing Functions"> Native code accesses <jvmti/> features by calling <jvmti/> functions. Access to <jvmti/> functions is by use of an interface pointer in the same manner as ! <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/design.html">Java Native Interface (JNI) functions</externallink> are accessed. The <jvmti/> interface pointer is called the <i>environment pointer</i>. <p/> An environment pointer is a pointer to an environment and has --- 914,924 ---- <intro id="jvmtiEnvAccess" label="Accessing Functions"> Native code accesses <jvmti/> features by calling <jvmti/> functions. Access to <jvmti/> functions is by use of an interface pointer in the same manner as ! <externallink id="docs/technotes/guides/jni/spec/design.html">Java Native Interface (JNI) functions</externallink> are accessed. The <jvmti/> interface pointer is called the <i>environment pointer</i>. <p/> An environment pointer is a pointer to an environment and has
*** 1005,1015 **** <jvmti/> functions can be either global or local, but they must be strong references. All references returned by <jvmti/> functions are local references--these local references are created during the <jvmti/> call. Local references are a resource that must be managed (see the ! <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#wp18654">JNI Documentation</externallink>). When threads return from native code all local references are freed. Note that some threads, including typical agent threads, will never return from native code. A thread is ensured the ability to create sixteen local references without the need for any explicit management. --- 1006,1017 ---- <jvmti/> functions can be either global or local, but they must be strong references. All references returned by <jvmti/> functions are local references--these local references are created during the <jvmti/> call. Local references are a resource that must be managed (see the ! <externallink id="docs/technotes/guides/jni/spec/functions.html#local_references"> ! JNI Documentation</externallink>). When threads return from native code all local references are freed. Note that some threads, including typical agent threads, will never return from native code. A thread is ensured the ability to create sixteen local references without the need for any explicit management.
*** 1040,1050 **** <internallink id="functionReturn">function return value</internallink>. Any existing exception state is preserved across a call to a <jvmti/> function. See the <externallink ! id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/design.html#wp770" >Java Exceptions</externallink> section of the JNI specification for information on handling exceptions. </intro> <category id="memory" label="Memory Management"> --- 1042,1052 ---- <internallink id="functionReturn">function return value</internallink>. Any existing exception state is preserved across a call to a <jvmti/> function. See the <externallink ! id="docs/technotes/guides/jni/spec/design.html#java_exceptions" >Java Exceptions</externallink> section of the JNI specification for information on handling exceptions. </intro> <category id="memory" label="Memory Management">
*** 2106,2116 **** <functionlink id="GetAllThreads"/> and <functionlink id="GetAllStackTraces"/>). <p/> Upon execution of <code>proc</code>, the new thread will be attached to the VM--see the JNI documentation on ! <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/invocation.html#wp1060" >Attaching to the VM</externallink>. </description> <origin>jvmdiClone</origin> <capabilities> </capabilities> --- 2108,2118 ---- <functionlink id="GetAllThreads"/> and <functionlink id="GetAllStackTraces"/>). <p/> Upon execution of <code>proc</code>, the new thread will be attached to the VM--see the JNI documentation on ! <externallink id="docs/technotes/guides/jni/spec/invocation.html#attaching_to_the_vm" >Attaching to the VM</externallink>. </description> <origin>jvmdiClone</origin> <capabilities> </capabilities>
*** 6648,6658 **** <function id="GetClassSignature" phase="start" num="48"> <synopsis>Get Class Signature</synopsis> <description> For the class indicated by <code>klass</code>, return the ! <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html#wp16432">JNI type signature</externallink> and the generic signature of the class. For example, <code>java.util.List</code> is <code>"Ljava/util/List;"</code> and <code>int[]</code> is <code>"[I"</code> The returned name for primitive classes --- 6650,6660 ---- <function id="GetClassSignature" phase="start" num="48"> <synopsis>Get Class Signature</synopsis> <description> For the class indicated by <code>klass</code>, return the ! <externallink id="docs/technotes/guides/jni/spec/types.html#type_signatures">JNI type signature</externallink> and the generic signature of the class. For example, <code>java.util.List</code> is <code>"Ljava/util/List;"</code> and <code>int[]</code> is <code>"[I"</code> The returned name for primitive classes
*** 8937,8947 **** <intro> Provides the ability to intercept and resend Java Native Interface (JNI) function calls by manipulating the JNI function table. ! See <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html">JNI Functions</externallink> in the <i>Java Native Interface Specification</i>. <p/> The following example illustrates intercepting the <code>NewGlobalRef</code> JNI call in order to count reference creation. --- 8939,8949 ---- <intro> Provides the ability to intercept and resend Java Native Interface (JNI) function calls by manipulating the JNI function table. ! See <externallink id="docs/technotes/guides/jni/spec/functions.html">JNI Functions</externallink> in the <i>Java Native Interface Specification</i>. <p/> The following example illustrates intercepting the <code>NewGlobalRef</code> JNI call in order to count reference creation.
*** 10638,10648 **** In the <code>OnLoad</code> phase the function may be used to specify any platform-dependent search path segment to be searched after the bootstrap class loader unsuccessfully searches for a class. The segment is typically a directory or JAR file. <p/> In the live phase the <paramlink id="segment"/> may be used to specify any platform-dependent ! path to a <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html"> JAR file</externallink>. The agent should take care that the JAR file does not contain any classes or resources other than those to be defined by the bootstrap class loader for the purposes of instrumentation. <p/> <vmspec/> specifies that a subsequent attempt to resolve a symbolic --- 10640,10650 ---- In the <code>OnLoad</code> phase the function may be used to specify any platform-dependent search path segment to be searched after the bootstrap class loader unsuccessfully searches for a class. The segment is typically a directory or JAR file. <p/> In the live phase the <paramlink id="segment"/> may be used to specify any platform-dependent ! path to a <externallink id="docs/technotes/guides/jar/jar.html"> JAR file</externallink>. The agent should take care that the JAR file does not contain any classes or resources other than those to be defined by the bootstrap class loader for the purposes of instrumentation. <p/> <vmspec/> specifies that a subsequent attempt to resolve a symbolic
*** 10685,10696 **** <p/> In the <code>OnLoad</code> phase the function may be used to specify any platform-dependent search path segment to be searched after the system class loader unsuccessfully searches for a class. The segment is typically a directory or JAR file. <p/> ! In the live phase the <paramlink id="segment"/> is a platform-dependent path to a <externallink ! id="http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html">JAR file</externallink> to be searched after the system class loader unsuccessfully searches for a class. The agent should take care that the JAR file does not contain any classes or resources other than those to be defined by the system class loader for the purposes of instrumentation. <p/> In the live phase the system class loader supports adding a JAR file to be searched if --- 10687,10698 ---- <p/> In the <code>OnLoad</code> phase the function may be used to specify any platform-dependent search path segment to be searched after the system class loader unsuccessfully searches for a class. The segment is typically a directory or JAR file. <p/> ! In the live phase the <paramlink id="segment"/> is a platform-dependent path to a ! <externallink id="docs/technotes/guides/jar/jar.html">JAR file</externallink> to be searched after the system class loader unsuccessfully searches for a class. The agent should take care that the JAR file does not contain any classes or resources other than those to be defined by the system class loader for the purposes of instrumentation. <p/> In the live phase the system class loader supports adding a JAR file to be searched if
*** 13517,13527 **** <basetype id="jniNativeInterface"> <definition>typedef struct JNINativeInterface_ jniNativeInterface;</definition> <description> Typedef for the JNI function table <code>JNINativeInterface</code> defined in the ! <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#wp23720">JNI Specification</externallink>. The JNI reference implementation defines this with an underscore. </description> </basetype> </basetypes> --- 13519,13530 ---- <basetype id="jniNativeInterface"> <definition>typedef struct JNINativeInterface_ jniNativeInterface;</definition> <description> Typedef for the JNI function table <code>JNINativeInterface</code> defined in the ! <externallink id="docs/technotes/guides/jni/spec/functions.html#interface_function_table"> ! JNI Specification</externallink>. The JNI reference implementation defines this with an underscore. </description> </basetype> </basetypes>