comparison src/share/vm/prims/jvmti.xml @ 6919:39556eae08af

6533010: SPEC: A few broken links in jvmti.html Summary: Fix the incorrect links in jvmti.html reported by the LinkCheck tool Reviewed-by: jjh, dholmes Contributed-by: serguei.spitsyn@oracle.com
author sspitsyn
date Mon, 29 Oct 2012 11:35:20 -0700
parents 1d80a2429f59
children 73e64867adb7
comparison
equal deleted inserted replaced
6917:e81fbc04a942 6919:39556eae08af
1 <?xml version="1.0" encoding="ISO-8859-1"?> 1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <?xml-stylesheet type="text/xsl" href="jvmti.xsl"?> 2 <?xml-stylesheet type="text/xsl" href="jvmti.xsl"?>
3 <!-- 3 <!--
4 Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. 4 Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
5 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 6
7 This code is free software; you can redistribute it and/or modify it 7 This code is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License version 2 only, as 8 under the terms of the GNU General Public License version 2 only, as
9 published by the Free Software Foundation. 9 published by the Free Software Foundation.
356 ]> 356 ]>
357 357
358 <specification label="JVM(TM) Tool Interface" 358 <specification label="JVM(TM) Tool Interface"
359 majorversion="1" 359 majorversion="1"
360 minorversion="2" 360 minorversion="2"
361 microversion="1"> 361 microversion="2">
362 <title subtitle="Version"> 362 <title subtitle="Version">
363 <tm>JVM</tm> Tool Interface 363 <tm>JVM</tm> Tool Interface
364 </title> 364 </title>
365 365
366 <intro id="whatIs" label="What is the JVM Tool Interface?"> 366 <intro id="whatIs" label="What is the JVM Tool Interface?">
403 The Java Platform Debugger Architecture includes <jvmti/>, but also 403 The Java Platform Debugger Architecture includes <jvmti/>, but also
404 contains higher-level, out-of-process debugger interfaces. The higher-level 404 contains higher-level, out-of-process debugger interfaces. The higher-level
405 interfaces are more appropriate than <jvmti/> for many tools. 405 interfaces are more appropriate than <jvmti/> for many tools.
406 For more information on the Java Platform Debugger Architecture, 406 For more information on the Java Platform Debugger Architecture,
407 see the 407 see the
408 <externallink id="http://java.sun.com/products/jpda/">Java 408 <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html">Java
409 Platform Debugger Architecture website</externallink>. 409 Platform Debugger Architecture website</externallink>.
410 </intro> 410 </intro>
411 411
412 <intro id="writingAgents" label="Writing Agents"> 412 <intro id="writingAgents" label="Writing Agents">
413 Agents can be written in any native language that supports C 413 Agents can be written in any native language that supports C
691 the likelihood of these occurrences are beyond the scope of this document. 691 the likelihood of these occurrences are beyond the scope of this document.
692 <p/> 692 <p/>
693 An agent creates a <jvmti/> environment 693 An agent creates a <jvmti/> environment
694 by passing a <jvmti/> version 694 by passing a <jvmti/> version
695 as the interface ID to the JNI Invocation API function 695 as the interface ID to the JNI Invocation API function
696 <externallink id="http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/invocation.html#GetEnv"><code>GetEnv</code></externallink>. 696 <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/invocation.html#GetEnv"><code>GetEnv</code></externallink>.
697 See <internallink id="jvmtiEnvAccess">Accessing <jvmti/> Functions</internallink> 697 See <internallink id="jvmtiEnvAccess">Accessing <jvmti/> Functions</internallink>
698 for more details on the creation and use of 698 for more details on the creation and use of
699 <jvmti/> environments. 699 <jvmti/> environments.
700 Typically, <jvmti/> environments are created by calling <code>GetEnv</code> from 700 Typically, <jvmti/> environments are created by calling <code>GetEnv</code> from
701 <internallink id="onload"><code>Agent_OnLoad</code></internallink>. 701 <internallink id="onload"><code>Agent_OnLoad</code></internallink>.
795 <jvmti/> uses modified UTF-8 to encode character strings. 795 <jvmti/> uses modified UTF-8 to encode character strings.
796 This is the same encoding used by JNI. 796 This is the same encoding used by JNI.
797 Modified UTF-8 differs 797 Modified UTF-8 differs
798 from standard UTF-8 in the representation of supplementary characters 798 from standard UTF-8 in the representation of supplementary characters
799 and of the null character. See the 799 and of the null character. See the
800 <externallink id="http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/types.html#wp16542"> 800 <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html#wp16542">
801 Modified UTF-8 Strings</externallink> 801 Modified UTF-8 Strings</externallink>
802 section of the JNI specification for details. 802 section of the JNI specification for details.
803 </intro> 803 </intro>
804 804
805 <intro id="context" label="Specification Context"> 805 <intro id="context" label="Specification Context">
825 <intro id="jvmtiEnvAccess" label="Accessing Functions"> 825 <intro id="jvmtiEnvAccess" label="Accessing Functions">
826 Native code accesses <jvmti/> features 826 Native code accesses <jvmti/> features
827 by calling <jvmti/> functions. 827 by calling <jvmti/> functions.
828 Access to <jvmti/> functions is by use of an interface pointer 828 Access to <jvmti/> functions is by use of an interface pointer
829 in the same manner as 829 in the same manner as
830 <externallink id="http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/design.html">Java 830 <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/design.html">Java
831 Native Interface (JNI) functions</externallink> are accessed. 831 Native Interface (JNI) functions</externallink> are accessed.
832 The <jvmti/> interface pointer is called the 832 The <jvmti/> interface pointer is called the
833 <i>environment pointer</i>. 833 <i>environment pointer</i>.
834 <p/> 834 <p/>
835 An environment pointer is a pointer to an environment and has 835 An environment pointer is a pointer to an environment and has
917 <jvmti/> functions can be either global or local, but they must be 917 <jvmti/> functions can be either global or local, but they must be
918 strong references. All references returned by <jvmti/> functions are 918 strong references. All references returned by <jvmti/> functions are
919 local references--these local references are created 919 local references--these local references are created
920 during the <jvmti/> call. 920 during the <jvmti/> call.
921 Local references are a resource that must be managed (see the 921 Local references are a resource that must be managed (see the
922 <externallink id="http://java.sun.com/javase/6/docs/guide/jni/spec/functions.html#wp18654">JNI Documentation</externallink>). 922 <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#wp18654">JNI Documentation</externallink>).
923 When threads return from native code all local references 923 When threads return from native code all local references
924 are freed. Note that some threads, including typical 924 are freed. Note that some threads, including typical
925 agent threads, will never return from native code. 925 agent threads, will never return from native code.
926 A thread is ensured the ability to create sixteen local 926 A thread is ensured the ability to create sixteen local
927 references without the need for any explicit management. 927 references without the need for any explicit management.
952 <internallink id="functionReturn">function return value</internallink>. 952 <internallink id="functionReturn">function return value</internallink>.
953 Any existing exception state is preserved across a call to a 953 Any existing exception state is preserved across a call to a
954 <jvmti/> function. 954 <jvmti/> function.
955 See the 955 See the
956 <externallink 956 <externallink
957 id="http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/design.html#wp770" 957 id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/design.html#wp770"
958 >Java Exceptions</externallink> 958 >Java Exceptions</externallink>
959 section of the JNI specification for information on handling exceptions. 959 section of the JNI specification for information on handling exceptions.
960 </intro> 960 </intro>
961 961
962 <category id="memory" label="Memory Management"> 962 <category id="memory" label="Memory Management">
2022 <functionlink id="GetAllThreads"/> and 2022 <functionlink id="GetAllThreads"/> and
2023 <functionlink id="GetAllStackTraces"/>). 2023 <functionlink id="GetAllStackTraces"/>).
2024 <p/> 2024 <p/>
2025 Upon execution of <code>proc</code>, the new thread will be attached to the 2025 Upon execution of <code>proc</code>, the new thread will be attached to the
2026 VM--see the JNI documentation on 2026 VM--see the JNI documentation on
2027 <externallink id="http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/invocation.html#wp1060" 2027 <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/invocation.html#wp1060"
2028 >Attaching to the VM</externallink>. 2028 >Attaching to the VM</externallink>.
2029 </description> 2029 </description>
2030 <origin>jvmdiClone</origin> 2030 <origin>jvmdiClone</origin>
2031 <capabilities> 2031 <capabilities>
2032 </capabilities> 2032 </capabilities>
4008 <inptr> 4008 <inptr>
4009 <struct>jvmtiHeapReferenceInfo</struct> 4009 <struct>jvmtiHeapReferenceInfo</struct>
4010 </inptr> 4010 </inptr>
4011 <description> 4011 <description>
4012 Details about the reference. 4012 Details about the reference.
4013 Set when the <paramlink id="reference_kind"/> is 4013 Set when the <datalink id="jvmtiHeapReferenceCallback.reference_kind">reference_kind</datalink> is
4014 <datalink id="JVMTI_HEAP_REFERENCE_FIELD"/>, 4014 <datalink id="JVMTI_HEAP_REFERENCE_FIELD"/>,
4015 <datalink id="JVMTI_HEAP_REFERENCE_STATIC_FIELD"/>, 4015 <datalink id="JVMTI_HEAP_REFERENCE_STATIC_FIELD"/>,
4016 <datalink id="JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT"/>, 4016 <datalink id="JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT"/>,
4017 <datalink id="JVMTI_HEAP_REFERENCE_CONSTANT_POOL"/>, 4017 <datalink id="JVMTI_HEAP_REFERENCE_CONSTANT_POOL"/>,
4018 <datalink id="JVMTI_HEAP_REFERENCE_STACK_LOCAL"/>, 4018 <datalink id="JVMTI_HEAP_REFERENCE_STACK_LOCAL"/>,
4376 The <datalink id="jvmtiHeapFilter">heap filter flags</datalink> 4376 The <datalink id="jvmtiHeapFilter">heap filter flags</datalink>
4377 and <paramlink id="klass"/> provided as parameters to this function 4377 and <paramlink id="klass"/> provided as parameters to this function
4378 do not control which objects are visited but they do control which 4378 do not control which objects are visited but they do control which
4379 objects and primitive values are reported by the callbacks. 4379 objects and primitive values are reported by the callbacks.
4380 For example, if the only callback that was set is 4380 For example, if the only callback that was set is
4381 <paramlink id="array_primitive_value_callback"/> and <code>klass</code> 4381 <fieldlink id="array_primitive_value_callback" struct="jvmtiHeapCallbacks"/> and <code>klass</code>
4382 is set to the array of bytes class, then only arrays of byte will be 4382 is set to the array of bytes class, then only arrays of byte will be
4383 reported. 4383 reported.
4384 The table below summarizes this: 4384 The table below summarizes this:
4385 <p/> 4385 <p/>
4386 <table> 4386 <table>
4412 <b>Yes</b>, since visits are controlled 4412 <b>Yes</b>, since visits are controlled
4413 </td> 4413 </td>
4414 </tr> 4414 </tr>
4415 <tr> 4415 <tr>
4416 <th align="left"> 4416 <th align="left">
4417 <fieldlink id="object_reference_callback" struct="jvmtiHeapCallbacks"/> 4417 <fieldlink id="array_primitive_value_callback" struct="jvmtiHeapCallbacks"/>
4418 in <paramlink id="callbacks"/> set 4418 in <paramlink id="callbacks"/> set
4419 </th> 4419 </th>
4420 <td> 4420 <td>
4421 No 4421 No
4422 </td> 4422 </td>
4568 The <datalink id="jvmtiHeapFilter">heap filter flags</datalink> 4568 The <datalink id="jvmtiHeapFilter">heap filter flags</datalink>
4569 and <paramlink id="klass"/> provided as parameters to this function 4569 and <paramlink id="klass"/> provided as parameters to this function
4570 do not control which objects are visited but they do control which 4570 do not control which objects are visited but they do control which
4571 objects and primitive values are reported by the callbacks. 4571 objects and primitive values are reported by the callbacks.
4572 For example, if the only callback that was set is 4572 For example, if the only callback that was set is
4573 <paramlink id="array_primitive_value_callback"/> and <code>klass</code> 4573 <fieldlink id="array_primitive_value_callback" struct="jvmtiHeapCallbacks"/> and <code>klass</code>
4574 is set to the array of bytes class, then only arrays of byte will be 4574 is set to the array of bytes class, then only arrays of byte will be
4575 reported. The table below summarizes this (contrast this with 4575 reported. The table below summarizes this (contrast this with
4576 <functionlink id="FollowReferences"/>): 4576 <functionlink id="FollowReferences"/>):
4577 <p/> 4577 <p/>
4578 <table> 4578 <table>
4604 No<br/>(unless they abort the iteration) 4604 No<br/>(unless they abort the iteration)
4605 </td> 4605 </td>
4606 </tr> 4606 </tr>
4607 <tr> 4607 <tr>
4608 <th align="left"> 4608 <th align="left">
4609 <fieldlink id="object_callback" struct="jvmtiHeapCallbacks"/> 4609 <fieldlink id="array_primitive_value_callback" struct="jvmtiHeapCallbacks"/>
4610 in <paramlink id="callbacks"/> set 4610 in <paramlink id="callbacks"/> set
4611 </th> 4611 </th>
4612 <td> 4612 <td>
4613 No 4613 No
4614 </td> 4614 </td>
6476 6476
6477 <function id="GetClassSignature" phase="start" num="48"> 6477 <function id="GetClassSignature" phase="start" num="48">
6478 <synopsis>Get Class Signature</synopsis> 6478 <synopsis>Get Class Signature</synopsis>
6479 <description> 6479 <description>
6480 For the class indicated by <code>klass</code>, return the 6480 For the class indicated by <code>klass</code>, return the
6481 <externallink id="http://java.sun.com/javase/6/docs/guide/jni/spec/types.html#wp16432">JNI 6481 <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html#wp16432">JNI
6482 type signature</externallink> 6482 type signature</externallink>
6483 and the generic signature of the class. 6483 and the generic signature of the class.
6484 For example, <code>java.util.List</code> is <code>"Ljava/util/List;"</code> 6484 For example, <code>java.util.List</code> is <code>"Ljava/util/List;"</code>
6485 and <code>int[]</code> is <code>"[I"</code> 6485 and <code>int[]</code> is <code>"[I"</code>
6486 The returned name for primitive classes 6486 The returned name for primitive classes
8761 8761
8762 <intro> 8762 <intro>
8763 Provides the ability to intercept and resend 8763 Provides the ability to intercept and resend
8764 Java Native Interface (JNI) function calls 8764 Java Native Interface (JNI) function calls
8765 by manipulating the JNI function table. 8765 by manipulating the JNI function table.
8766 See <externallink id="http://java.sun.com/javase/6/docs/guide/jni/spec/functions.html">JNI 8766 See <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html">JNI
8767 Functions</externallink> in the <i>Java Native Interface Specification</i>. 8767 Functions</externallink> in the <i>Java Native Interface Specification</i>.
8768 <p/> 8768 <p/>
8769 The following example illustrates intercepting the 8769 The following example illustrates intercepting the
8770 <code>NewGlobalRef</code> JNI call in order to count reference 8770 <code>NewGlobalRef</code> JNI call in order to count reference
8771 creation. 8771 creation.
10444 In the <code>OnLoad</code> phase the function may be used to specify any platform-dependent 10444 In the <code>OnLoad</code> phase the function may be used to specify any platform-dependent
10445 search path segment to be searched after the bootstrap class loader unsuccessfully searches 10445 search path segment to be searched after the bootstrap class loader unsuccessfully searches
10446 for a class. The segment is typically a directory or JAR file. 10446 for a class. The segment is typically a directory or JAR file.
10447 <p/> 10447 <p/>
10448 In the live phase the <paramlink id="segment"/> may be used to specify any platform-dependent 10448 In the live phase the <paramlink id="segment"/> may be used to specify any platform-dependent
10449 path to a <externallink id="http://java.sun.com/javase/6/docs/guide/jar/jar.html"> 10449 path to a <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html">
10450 JAR file</externallink>. The agent should take care that the JAR file does not 10450 JAR file</externallink>. The agent should take care that the JAR file does not
10451 contain any classes or resources other than those to be defined by the bootstrap 10451 contain any classes or resources other than those to be defined by the bootstrap
10452 class loader for the purposes of instrumentation. 10452 class loader for the purposes of instrumentation.
10453 <p/> 10453 <p/>
10454 <vmspec/> specifies that a subsequent attempt to resolve a symbolic 10454 <vmspec/> specifies that a subsequent attempt to resolve a symbolic
10492 In the <code>OnLoad</code> phase the function may be used to specify any platform-dependent 10492 In the <code>OnLoad</code> phase the function may be used to specify any platform-dependent
10493 search path segment to be searched after the system class loader unsuccessfully searches 10493 search path segment to be searched after the system class loader unsuccessfully searches
10494 for a class. The segment is typically a directory or JAR file. 10494 for a class. The segment is typically a directory or JAR file.
10495 <p/> 10495 <p/>
10496 In the live phase the <paramlink id="segment"/> is a platform-dependent path to a <externallink 10496 In the live phase the <paramlink id="segment"/> is a platform-dependent path to a <externallink
10497 id="http://java.sun.com/javase/6/docs/guide/jar/jar.html">JAR file</externallink> to be 10497 id="http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html">JAR file</externallink> to be
10498 searched after the system class loader unsuccessfully searches for a class. The agent should 10498 searched after the system class loader unsuccessfully searches for a class. The agent should
10499 take care that the JAR file does not contain any classes or resources other than those to be 10499 take care that the JAR file does not contain any classes or resources other than those to be
10500 defined by the system class loader for the purposes of instrumentation. 10500 defined by the system class loader for the purposes of instrumentation.
10501 <p/> 10501 <p/>
10502 In the live phase the system class loader supports adding a JAR file to be searched if 10502 In the live phase the system class loader supports adding a JAR file to be searched if
13126 <description> 13126 <description>
13127 Holds a Java programming language <code>boolean</code>. 13127 Holds a Java programming language <code>boolean</code>.
13128 Unsigned 8 bits. 13128 Unsigned 8 bits.
13129 </description> 13129 </description>
13130 </basetype> 13130 </basetype>
13131 <basetype id="jchar">
13132 <description>
13133 Holds a Java programming language <code>char</code>.
13134 Unsigned 16 bits.
13135 </description>
13136 </basetype>
13131 <basetype id="jint"> 13137 <basetype id="jint">
13132 <description> 13138 <description>
13133 Holds a Java programming language <code>int</code>. 13139 Holds a Java programming language <code>int</code>.
13134 Signed 32 bits. 13140 Signed 32 bits.
13135 </description> 13141 </description>
13283 <basetype id="jniNativeInterface"> 13289 <basetype id="jniNativeInterface">
13284 <definition>typedef struct JNINativeInterface_ jniNativeInterface;</definition> 13290 <definition>typedef struct JNINativeInterface_ jniNativeInterface;</definition>
13285 <description> 13291 <description>
13286 Typedef for the JNI function table <code>JNINativeInterface</code> 13292 Typedef for the JNI function table <code>JNINativeInterface</code>
13287 defined in the 13293 defined in the
13288 <externallink id="http://java.sun.com/javase/6/docs/guide/jni/spec/functions.html#wp23720">JNI Specification</externallink>. 13294 <externallink id="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#wp23720">JNI Specification</externallink>.
13289 The JNI reference implementation defines this with an underscore. 13295 The JNI reference implementation defines this with an underscore.
13290 </description> 13296 </description>
13291 </basetype> 13297 </basetype>
13292 </basetypes> 13298 </basetypes>
13293 13299
14250 Update links to point to Java 6. 14256 Update links to point to Java 6.
14251 </change> 14257 </change>
14252 <change date="6 August 2006" version="1.1.102"> 14258 <change date="6 August 2006" version="1.1.102">
14253 Add ResourceExhaustedEvent. 14259 Add ResourceExhaustedEvent.
14254 </change> 14260 </change>
14261 <change date="11 October 2012" version="1.2.2">
14262 Fixed the "HTTP" and "Missing Anchor" errors reported by the LinkCheck tool.
14263 </change>
14255 </changehistory> 14264 </changehistory>
14256 14265
14257 </specification> 14266 </specification>
14258 <!-- Keep this comment at the end of the file 14267 <!-- Keep this comment at the end of the file
14259 Local variables: 14268 Local variables: