< prev index next >

src/hotspot/share/prims/jvmti.xml

Print this page
rev 48551 : [mq]: heap8
rev 48552 : [mq]: heap10a
rev 48556 : [mq]: heap17
rev 48559 : [mq]: heap20
rev 48562 : [mq]: heap23

@@ -11537,46 +11537,24 @@
     </function>
 
   </category>
 
   <category id="heap_monitoring" label="Heap Monitoring">
-    <typedef id="jvmtiStackTrace" label="Stack Trace" since="11">
-      <field id="frames">
-        <allocfieldbuf outcount="frame_count">
-          <struct>jvmtiFrameInfo</struct>
+    <typedef id="jvmtiAllocTraceInfo" label="Allocation Trace Information" since="11">
+      <field id="stack_info">
+        <allocfieldbuf>
+          <struct>jvmtiStackInfo</struct>
         </allocfieldbuf>
-        <description>Pointer to the call frames.</description>
-      </field>
-      <field id="frame_count">
-        <jint/>
-        <description>The number of frames for the trace.</description>
+        <description>Pointer to the stack information.</description>
       </field>
       <field id="size">
-        <jint/>
+        <jlong/>
         <description>The size of the object allocation.</description>
       </field>
       <field id="thread_id">
-        <jlong/>
-        <description>The thread id number.</description>
-      </field>
-    </typedef>
-
-    <typedef id="jvmtiStackTraces" label="Stack Traces" since="11">
-      <field id="stack_traces">
-        <allocfieldbuf outcount="trace_count">
-          <struct>jvmtiStackTrace</struct>
-        </allocfieldbuf>
-        <description>
-          The <datalink id="jvmtiStackTrace"/> array with the various stack traces.
-        </description>
-      </field>
-
-      <field id="trace_count">
         <jint/>
-        <description>
-          Number of traces pointed by the array <datalink id="jvmtiStackTraces"/>.
-        </description>
+        <description>The thread id of the object allocation.</description>
       </field>
     </typedef>
 
     <typedef id="jvmtiHeapSamplingStats" label="Heap Sampling Statistics" since="11">
       <field id="sample_count">

@@ -11625,11 +11603,11 @@
       <description>
         Start the heap sampler in the JVM. The function provides, via its argument, the sampling
         rate requested and will fill internal data structures with heap allocation samples. The
         samples are obtained via the <functionlink id="GetLiveTraces"></functionlink>,
         <functionlink id="GetGarbageTraces"></functionlink>, <functionlink id="GetFrequentGarbageTraces"></functionlink>,
-        or <functionlink id="GetCachedTraces"></functionlink> functions.
+        or <functionlink id="GetCachedObjectAllocTraces"></functionlink> functions.
       </description>
       <origin>new</origin>
       <capabilities>
         <required id="can_sample_heap"></required>
       </capabilities>

@@ -11662,16 +11640,16 @@
       <synopsis>Stop Heap Sampling</synopsis>
       <description>
         Stop the heap sampler in the JVM.
         Any sample obtained during sampling is still available via the <functionlink id="GetLiveTraces"></functionlink>,
         <functionlink id="GetGarbageTraces"></functionlink>, <functionlink id="GetFrequentGarbageTraces"></functionlink>,
-        or <functionlink id="GetCachedTraces"></functionlink> functions.
+        or <functionlink id="GetCachedObjectAllocTraces"></functionlink> functions.
 
         Stopping the heap sampler resets internal traces and counters. Therefore stopping the sampler frees any
         internal trace samples, any subsequent call to the <functionlink id="GetLiveTraces"></functionlink>,
         <functionlink id="GetGarbageTraces"></functionlink>, <functionlink id="GetFrequentGarbageTraces"></functionlink>,
-        or <functionlink id="GetCachedTraces"></functionlink> functions will return no traces.
+        or <functionlink id="GetCachedObjectAllocTraces"></functionlink> functions will return no traces.
       </description>
       <origin>new</origin>
       <capabilities>
         <required id="can_sample_heap"></required>
       </capabilities>

@@ -11679,32 +11657,49 @@
       </parameters>
       <errors>
       </errors>
     </function>
 
-    <function id="GetLiveTraces" num="158" since="11">
-      <synopsis>Get Live Traces</synopsis>
+    <function id="GetObjectAllocTraces" num="158" since="11">
+      <synopsis>Get Object Allocation Traces</synopsis>
       <description>
         Get Live Heap Sampled traces.  The fields of the <datalink id="jvmtiStackTraces"/>
         structure are filled in with details of the specified sampled allocation.
 
         This methods call full GC and can be costly. Use with care as it can affect performance. For
-        continuous profiling, perhaps prefer GetCachedTraces, which returns the live traces at the last
-        full GC point.
+        continuous profiling, perhaps prefer GetCachedObjectAllocTraces, which returns the live
+        traces at the last full GC point.
 
         This method can be called at any time but if the sampler is not enabled, via
         <functionlink id="StartHeapSampling"></functionlink>, it returns no traces.
       </description>
       <origin>new</origin>
       <capabilities>
         <required id="can_sample_heap"></required>
       </capabilities>
       <parameters>
-        <param id="stack_traces">
-          <outptr><struct>jvmtiStackTraces</struct></outptr>
+        <param id="trace_info_ptr">
+          <allocbuf>
+            <struct>jvmtiAllocTraceInfo</struct>
+          </allocbuf>
+          <description>
+            On return, this buffer is filled with stack information for each live object.
+            The number of <datalink id="jvmtiAllocTraceInfo"/> records is determined
+            by <paramlink id="trace_count_ptr"/>.
+            <p/>
+            Note that this buffer is allocated to include the <datalink id="jvmtiStackInfo"/>
+            buffers pointed to by <datalink id="jvmtiAllocTraceInfo.frame_buffer"/>, which also
+            include the <datalink id="jvmtiFrameInfo"/> buffers pointed by
+            <datalink id="jvmtiAllocTraceInfo.frame_buffer"/>.
+
+            All these buffers must not be separately deallocated.
+          </description>
+        </param>
+        <param id="trace_count_ptr">
+          <outptr><jint/></outptr>
           <description>
-            The stack trace data structure to be filled.
+            The number of traces allocated.
           </description>
         </param>
       </parameters>
       <errors>
       </errors>

@@ -11722,14 +11717,31 @@
       <origin>new</origin>
       <capabilities>
         <required id="can_sample_heap"></required>
       </capabilities>
       <parameters>
-        <param id="stack_traces">
-          <outptr><struct>jvmtiStackTraces</struct></outptr>
+        <param id="trace_info_ptr">
+          <allocbuf>
+            <struct>jvmtiAllocTraceInfo</struct>
+          </allocbuf>
+          <description>
+            On return, this buffer is filled with stack information for each live object.
+            The number of <datalink id="jvmtiAllocTraceInfo"/> records is determined
+            by <paramlink id="trace_count_ptr"/>.
+            <p/>
+            Note that this buffer is allocated to include the <datalink id="jvmtiStackInfo"/>
+            buffers pointed to by <datalink id="jvmtiAllocTraceInfo.frame_buffer"/>, which also
+            include the <datalink id="jvmtiFrameInfo"/> buffers pointed by
+            <datalink id="jvmtiAllocTraceInfo.frame_buffer"/>.
+
+            All these buffers must not be separately deallocated.
+          </description>
+        </param>
+        <param id="trace_count_ptr">
+          <outptr><jint/></outptr>
           <description>
-            The stack trace data structure to be filled.
+            The number of traces allocated.
           </description>
         </param>
       </parameters>
       <errors>
       </errors>

@@ -11747,23 +11759,40 @@
       <origin>new</origin>
       <capabilities>
         <required id="can_sample_heap"></required>
       </capabilities>
       <parameters>
-        <param id="stack_traces">
-          <outptr><struct>jvmtiStackTraces</struct></outptr>
+        <param id="trace_info_ptr">
+          <allocbuf>
+            <struct>jvmtiAllocTraceInfo</struct>
+          </allocbuf>
+          <description>
+            On return, this buffer is filled with stack information for each live object.
+            The number of <datalink id="jvmtiAllocTraceInfo"/> records is determined
+            by <paramlink id="trace_count_ptr"/>.
+            <p/>
+            Note that this buffer is allocated to include the <datalink id="jvmtiStackInfo"/>
+            buffers pointed to by <datalink id="jvmtiAllocTraceInfo.frame_buffer"/>, which also
+            include the <datalink id="jvmtiFrameInfo"/> buffers pointed by
+            <datalink id="jvmtiAllocTraceInfo.frame_buffer"/>.
+
+            All these buffers must not be separately deallocated.
+          </description>
+        </param>
+        <param id="trace_count_ptr">
+          <outptr><jint/></outptr>
           <description>
-            The stack trace data structure to be filled.
+            The number of traces allocated.
           </description>
         </param>
       </parameters>
       <errors>
       </errors>
     </function>
 
-    <function id="GetCachedTraces" num="161" since="11">
-      <synopsis>Get Live Traces</synopsis>
+    <function id="GetCachedObjectAllocTraces" num="161" since="11">
+      <synopsis>Get Cached Object Allocated Traces</synopsis>
       <description>
         Get the cached sampled traces: the traces are the ones that were collected during the last
         full GC.  The fields of the <datalink id="jvmtiStackTraces"/> structure are filled in with
         details of the specified sampled allocation.
 

@@ -11773,43 +11802,39 @@
       <origin>new</origin>
       <capabilities>
         <required id="can_sample_heap"></required>
       </capabilities>
       <parameters>
-        <param id="stack_traces">
-          <outptr><struct>jvmtiStackTraces</struct></outptr>
-          <description>
-            The stack trace data structure to be filled.
-          </description>
-        </param>
-      </parameters>
-      <errors>
-      </errors>
-    </function>
+        <param id="trace_info_ptr">
+          <allocbuf>
+            <struct>jvmtiAllocTraceInfo</struct>
+          </allocbuf>
+          <description>
+            On return, this buffer is filled with stack information for each live object.
+            The number of <datalink id="jvmtiAllocTraceInfo"/> records is determined
+            by <paramlink id="trace_count_ptr"/>.
+            <p/>
+            Note that this buffer is allocated to include the <datalink id="jvmtiStackInfo"/>
+            buffers pointed to by <datalink id="jvmtiAllocTraceInfo.frame_buffer"/>, which also
+            include the <datalink id="jvmtiFrameInfo"/> buffers pointed by
+            <datalink id="jvmtiAllocTraceInfo.frame_buffer"/>.
 
-    <function id="ReleaseTraces" num="162" since="11">
-      <synopsis>Release traces provided by the heap monitoring</synopsis>
-      <description>
-        Release traces provided by any of the trace retrieval methods.
+            All these buffers must not be separately deallocated.
       </description>
-      <origin>new</origin>
-      <capabilities>
-        <required id="can_sample_heap"></required>
-      </capabilities>
-      <parameters>
-        <param id="stack_traces">
-          <outptr><struct>jvmtiStackTraces</struct></outptr>
+        </param>
+        <param id="trace_count_ptr">
+          <outptr><jint/></outptr>
           <description>
-            The stack trace data structure to be released.
+            The number of traces allocated.
           </description>
         </param>
       </parameters>
       <errors>
       </errors>
     </function>
 
-    <function id="GetHeapSamplingStats" num="163" since="11">
+    <function id="GetHeapSamplingStats" num="162" since="11">
       <synopsis>Get the heap sampling statistics</synopsis>
       <description>
         Returns a <datalink id="jvmtiHeapSamplingStats"/> to understand the heap sampling behavior and current
         internal data storage status.
 
< prev index next >