< prev index next >

src/share/vm/trace/tracetypes.xml

Print this page
rev 8910 : full patch for jfr
   1 <?xml version="1.0" encoding="utf-8"?>
   2 <!--
   3  Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   4  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5 
   6  This code is free software; you can redistribute it and/or modify it
   7  under the terms of the GNU General Public License version 2 only, as
   8  published by the Free Software Foundation.
   9 
  10  This code is distributed in the hope that it will be useful, but WITHOUT
  11  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  version 2 for more details (a copy is included in the LICENSE file that
  14  accompanied this code).
  15 
  16  You should have received a copy of the GNU General Public License version
  17  2 along with this work; if not, write to the Free Software Foundation,
  18  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19 
  20  Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  or visit www.oracle.com if you need additional information or have any
  22  questions.
  23 -->
  24 
  25 <!DOCTYPE types SYSTEM "trace.dtd">
  26 
  27 <!--
  28 
  29 Content types (complex) should create constant pool data
  30 in the recording.
  31 Currently at least, there is _NO_ verification that whatever
  32 writer you have is actually writing correctly. So BE CAREFUL!
  33 
  34 Declared with the 'content_type' tag.
  35 
  36 <type> is the ID type, i.e the integer type that resolves this. Most often
  37 U4 or U8, but for example really small number constants, like GCTYPE uses U1.
  38 
  39 <content-type> is where it gets interesting. 'builtin_type' means we're
  40 defining how we resolve one of the trace built-in types (Class, Thread etc),
  41 jvm_type means defining a new one for our own use.
  42 
  43 Example: (GcMode)
  44 
  45 <content_type id="GCMode" hr_name="GC mode" type="U1" jvm_type="GCMODE">
  46   <value type="UTF8" field="desc" description="Description"/>
  47 </content_type>
  48 
  49 This creates a content type CONTENT_TYPE_GCMODE
  50 The field type referencing it is u1 (U1), and the constant pool struct has one field, the name.
  51 
  52 Before we can use it we need also define a primary field data type:
  53 
  54 <primary_type symbol="GCMODE" datatype="U1" contenttype="NONE"
  55               type="u8" sizeop="sizeof(u1)"/>
  56 
  57 Now we can use the content + data type in declaring event fields.
  58  -->
  59 
  60  <types>
  61   <content_types>
  62     <content_type id="Thread" hr_name="Thread"
  63                   type="U4" builtin_type="OSTHREAD">
  64       <value type="UTF8" field="name" label="Thread name"/>
  65     </content_type>
  66 
  67     <content_type id="VMThread" hr_name="VM Thread"
  68                   type="U8" jvm_type="VMTHREAD">
  69       <value type="OSTHREAD" field="thread" label="VM Thread"/>
  70     </content_type>
  71 
  72     <content_type id="JavaThread" hr_name="Java thread"
  73                   type="U8" builtin_type="JAVALANGTHREAD">
  74       <value type="OSTHREAD" field="thread" label="OS Thread ID"/>
  75       <value type="BYTES64" field="allocInsideTla"
  76              label="Allocated bytes inside TLAs"/>
  77       <value type="BYTES64" field="allocOutsideTla"
  78              label="Allocated bytes outside TLAs"/>
  79       <value type="THREADGROUP" field="group" label="Java Thread Group"/>
  80     </content_type>
  81 
  82     <content_type id="ThreadGroup" hr_name="Thread group"
  83                   type="U4" jvm_type="THREADGROUP">
  84       <value type="THREADGROUP" field="parent" label="Parent"/>
  85       <value type="UTF8" field="name" label="Name"/>
  86     </content_type>
  87 
  88     <content_type id="Class" hr_name="Java class"
  89                   type="U8" builtin_type="CLASS">
  90       <value type="CLASS" field="loaderClass" label="ClassLoader"/>
  91       <value type="SYMBOL" field="name" label="Name"/>
  92       <value type="SHORT" field="modifiers" label="Access modifiers"/>
  93     </content_type>
  94 
  95     <content_type id="Method" hr_name="Java method"






  96                   type="U8" jvm_type="METHOD">
  97       <value type="CLASS" field="class" label="Class"/>
  98       <value type="SYMBOL" field="name" label="Name"/>
  99       <value type="SYMBOL" field="signature" label="Signature"/>
 100       <value type="SHORT" field="modifiers" label="Access modifiers"/>
 101       <value type="BOOLEAN" field="hidden" label="Hidden"/>
 102     </content_type>
 103 
 104     <content_type id="UTFConstant" hr_name="UTF constant"
 105                   type="U8" jvm_type="SYMBOL">
 106       <value type="UTF8" field="utf8" label="UTF8 data"/>
 107     </content_type>
 108 
 109     <content_type id="ThreadState" hr_name="Java Thread State"
 110                   type="U2" jvm_type="THREADSTATE">
 111       <value type="UTF8" field="name" label="Name"/>
 112     </content_type>
 113 
 114     <content_type id="GCName" hr_name="GC Name"
 115                   type="U1" jvm_type="GCNAME">
 116       <value type="UTF8" field="name" label="name" />
 117     </content_type>
 118 
 119     <content_type id="GCCause" hr_name="GC Cause"
 120                   type="U2" jvm_type="GCCAUSE">
 121       <value type="UTF8" field="cause" label="cause" />
 122     </content_type>
 123 
 124     <content_type id="GCWhen" hr_name="GC When"
 125                   type="U1" jvm_type="GCWHEN">
 126       <value type="UTF8" field="when" label="when" />





 127     </content_type>
 128 
 129     <content_type id="G1YCType" hr_name="G1 YC Type"
 130                   type="U1" jvm_type="G1YCTYPE">
 131       <value type="UTF8" field="type" label="type" />
 132     </content_type>
 133 
 134     <content_type id="GCThresholdUpdater" hr_name="GC Treshold Updater"
 135                   type="U1" jvm_type="GCTHRESHOLDUPDATER">
 136       <value type="UTF8" field="updater" label="updater" />
 137     </content_type>
 138 
 139     <content_type id="ReferenceType" hr_name="Reference Type"
 140                   type="U1" jvm_type="REFERENCETYPE">
 141       <value type="UTF8" field="type" label="type" />
 142     </content_type>
 143 
 144     <content_type id="MetadataType" hr_name="Metadata Type"
 145                   type="U1" jvm_type="METADATATYPE">
 146       <value type="UTF8" field="type" label="type" />
 147     </content_type>
 148 
 149     <content_type id="MetaspaceObjectType" hr_name="Metaspace Object Type"
 150                   type="U1" jvm_type="METASPACEOBJTYPE">
 151       <value type="UTF8" field="type" label="type" />
 152     </content_type>
 153 
 154     <content_type id="NARROW_OOP_MODE" hr_name="Narrow Oop Mode"
 155                   type="U1" jvm_type="NARROWOOPMODE">
 156       <value type="UTF8" field="mode" label="mode" />
 157     </content_type>
 158 
 159     <content_type id="VMOperationType" hr_name="VM Operation Type"
 160                   type="U2" jvm_type="VMOPERATIONTYPE">
 161       <value type="UTF8" field="type" label="type" />
 162     </content_type>
 163 
 164     <content_type id="CompilerPhaseType" hr_name="Compiler Phase Type"
 165                   type="U1" jvm_type="COMPILERPHASETYPE">
 166       <value type="UTF8" field="phase" label="phase" />
 167     </content_type>
 168 
 169     <content_type id="FlagValueOrigin" hr_name="Flag Value Origin"
 170                   type="U1" jvm_type="FLAGVALUEORIGIN">
 171       <value type="UTF8" field="origin" label="origin" />








































 172     </content_type>
 173 


























 174   </content_types>
 175 
 176 
 177   <primary_types>
 178     <!--
 179       - primary_type takes these attributes:
 180       -   symbol      INTEGER, LONG etc
 181       -   datatype    The trace datatype, see enum DataType
 182       -   contenttype Either resolved content type or the semantic meaning
 183       -   type        The actual type as used in structures etc
 184       -   sizeop      A function/macro that can be applied on a single
 185       -               struct value of type "type" and yield the factual byte
 186       -               size we need to write.  The % is replaced by the value
 187       -->
 188 
 189     <!-- SIGNED 64bit -->
 190     <primary_type symbol="LONG" datatype="LONG" contenttype="NONE"
 191                   type="s8" sizeop="sizeof(s8)"/>
 192 
 193     <!-- UNSIGNED 64bit -->


 214     <primary_type symbol="BYTE" datatype="BYTE" contenttype="NONE"
 215                   type="s1" sizeop="sizeof(s1)"/>
 216 
 217     <!--  UNSIGNED 8bit -->
 218     <primary_type symbol="UBYTE" datatype="U1" contenttype="NONE"
 219                   type="u1" sizeop="sizeof(u1)"/>
 220 
 221     <!--  float 32bit -->
 222     <primary_type symbol="FLOAT" datatype="FLOAT" contenttype="NONE"
 223                   type="float" sizeop="sizeof(float)"/>
 224 
 225     <!--  float 64bit -->
 226     <primary_type symbol="DOUBLE" datatype="DOUBLE" contenttype="NONE"
 227                   type="double" sizeop="sizeof(double)"/>
 228 
 229     <!-- boolean type (1-byte) -->
 230     <primary_type symbol="BOOLEAN" datatype="BOOLEAN" contenttype="NONE"
 231                   type="bool" sizeop="1"/>
 232 
 233     <!-- 32-bit unsigned integer, SEMANTIC value BYTES -->
 234     <primary_type symbol="BYTES" datatype="U4" contenttype="BYTES"
 235                   type="u4" sizeop="sizeof(u4)"/>
 236 
 237     <primary_type symbol="IOBYTES" datatype="U4" contenttype="BYTES"
 238                   type="u4" sizeop="sizeof(u4)"/>
 239 
 240     <!-- 64-bit unsigned integer, SEMANTIC value BYTES -->
 241     <primary_type symbol="BYTES64" datatype="U8" contenttype="BYTES"
 242                   type="u8" sizeop="sizeof(u8)"/>
 243 
 244     <!-- 64-bit unsigned integer, SEMANTIC value ABSOLUTE MILLISECONDS -->
 245     <primary_type symbol="EPOCHMILLIS" datatype="LONG" contenttype="EPOCHMILLIS"
 246                   type="s8" sizeop="sizeof(s8)"/>
 247 
 248     <!-- 64-bit unsigned integer, SEMANTIC value RELATIVE MILLISECONDS -->
 249     <primary_type symbol="MILLIS" datatype="LONG" contenttype="MILLIS"
 250                   type="s8" sizeop="sizeof(s8)"/>
 251 
 252     <!-- 64-bit unsigned integer, SEMANTIC value RELATIVE NANOSECONDS -->
 253     <primary_type symbol="NANOS" datatype="LONG" contenttype="NANOS"
 254                   type="s8" sizeop="sizeof(s8)"/>
 255 
 256     <!-- 64-bit signed integer, SEMANTIC value TICKS -->
 257     <primary_type symbol="TICKS" datatype="LONG" contenttype="TICKS"
 258                   type="Ticks" sizeop="sizeof(s8)"/>
 259 
 260     <!-- 64-bit signed integer, SEMANTIC value TICKS duration -->
 261     <primary_type symbol="TICKSPAN" datatype="LONG" contenttype="TICKS"
 262                   type="Tickspan" sizeop="sizeof(s8)"/>
 263 
 264     <!-- 64-bit unsigned integer, SEMANTIC value ADDRESS (mem loc) -->
 265     <primary_type symbol="ADDRESS" datatype="U8" contenttype="ADDRESS"
 266                   type="u8" sizeop="sizeof(u8)"/>
 267 
 268     <!-- 32-bit float, SEMANTIC value PERCENTAGE (0.0-1.0) -->
 269     <primary_type symbol="PERCENT" datatype="FLOAT" contenttype="PERCENTAGE"
 270                   type="float" sizeop="sizeof(float)"/>
 271 
 272     <!-- UTF-encoded string, max length 64k -->
 273     <primary_type symbol="UTF8" datatype="UTF8" contenttype="NONE"
 274                   type="const char *" sizeop="sizeof_utf(%)"/>
 275 
 276     <!-- UTF-16 encoded (Unicode) string, max length maxjuint -->
 277     <primary_type symbol="STRING" datatype="STRING" contenttype="NONE"
 278                   type="TraceUnicodeString*" sizeop="sizeof_unicode(%)"/>
 279 
 280     <!-- Symbol* constant. Note that this may currently ONLY be used by
 281           classes, methods fields.  This restriction might be lifted. -->
 282     <primary_type symbol="SYMBOL" datatype="U8" contenttype="SYMBOL"
 283                   type="Symbol *" sizeop="sizeof(u8)"/>
 284 
 285     <!-- A Klass *. The actual class is marked as "used" and will
 286          eventually be written into the recording constant pool -->
 287     <primary_type symbol="CLASS" datatype="U8" contenttype="CLASS"
 288                   type="Klass *" sizeop="sizeof(u8)"/>



 289 
 290     <!-- A Method *. The method is marked as "used" and will eventually be
 291          written into the recording constant pool. -->
 292     <primary_type symbol="METHOD" datatype="U8" contenttype="METHOD"
 293                   type="Method *" sizeop="sizeof(u8)"/>
 294 
 295     <!--  The type for stacktraces in the recording. Shoudl not be used by
 296           events explicitly -->
 297     <primary_type symbol="STACKTRACE" datatype="U8" contenttype="STACKTRACE"
 298                   type="u8" sizeop="sizeof(u8)"/>
 299 
 300     <!-- OS Thread ID -->
 301     <primary_type symbol="OSTHREAD" datatype="U4" contenttype="OSTHREAD"
 302                   type="u4" sizeop="sizeof(u4)"/>
 303 
 304     <!-- VM Thread ID Note: changed from U2 to U8 for hotspot -->
 305     <primary_type symbol="VMTHREAD" datatype="U8" contenttype="VMTHREAD"
 306                   type="u8"  sizeop="sizeof(u8)"/>
 307 
 308     <!-- Java Thread ID -->
 309     <primary_type symbol="JAVALANGTHREAD" datatype="LONG"
 310                   contenttype="JAVALANGTHREAD" type="s8"
 311                   sizeop="sizeof(s8)"/>
 312 
 313     <!-- Threadgroup THIS TYPE MAY NOT BE USED IN NORMAL EVENTS (ATM). Only
 314           for thread constant pool // KK TODO: u8 should be ObjectP -->
 315     <primary_type symbol="THREADGROUP" datatype="U4" contenttype="THREADGROUP"
 316                   type="u8"
 317                   sizeop="sizeof(u4)"/>
 318 
 319     <!-- FRAMETYPE enum -->
 320     <primary_type symbol="FRAMETYPE" datatype="U1" contenttype="FRAMETYPE"
 321                   type="u1" sizeop="sizeof(u1)"/>
 322 
 323     <!-- THREADSTATE enum -->
 324     <primary_type symbol="THREADSTATE" datatype="U2" contenttype="THREADSTATE"
 325                   type="u2" sizeop="sizeof(u2)"/>
 326 
 327     <!-- GCName -->
 328     <primary_type symbol="GCNAME" datatype="U1" contenttype="GCNAME"
 329                   type="u1" sizeop="sizeof(u1)" />
 330 
 331     <!-- GCCAUSE -->
 332     <primary_type symbol="GCCAUSE" datatype="U2" contenttype="GCCAUSE"
 333                   type="u2" sizeop="sizeof(u2)" />
 334 
 335     <!-- GCWHEN -->
 336     <primary_type symbol="GCWHEN" datatype="U1" contenttype="GCWHEN"
 337                   type="u1" sizeop="sizeof(u1)" />




 338 
 339     <!-- G1YCType -->
 340     <primary_type symbol="G1YCTYPE" datatype="U1" contenttype="G1YCTYPE"
 341                   type="u1" sizeop="sizeof(u1)" />
 342 
 343     <!-- GCTHRESHOLDUPDATER -->
 344     <primary_type symbol="GCTHRESHOLDUPDATER" datatype="U1" contenttype="GCTHRESHOLDUPDATER"
 345                   type="u1" sizeop="sizeof(u1)" />
 346 
 347     <!-- REFERENCETYPE -->
 348     <primary_type symbol="REFERENCETYPE" datatype="U1"
 349                   contenttype="REFERENCETYPE" type="u1" sizeop="sizeof(u1)" />
 350 
 351     <!-- METADATATYPE -->
 352     <primary_type symbol="METADATATYPE" datatype="U1"
 353                   contenttype="METADATATYPE" type="u1" sizeop="sizeof(u1)" />
 354 
 355     <!-- METADATAOBJTYPE -->
 356     <primary_type symbol="METASPACEOBJTYPE" datatype="U1"
 357                   contenttype="METASPACEOBJTYPE" type="u1" sizeop="sizeof(u1)" />
 358 
 359     <!-- NARROWOOPMODE -->
 360     <primary_type symbol="NARROWOOPMODE" datatype="U1"
 361                   contenttype="NARROWOOPMODE" type="u1" sizeop="sizeof(u1)" />
 362 
 363     <!-- COMPILERPHASETYPE -->
 364     <primary_type symbol="COMPILERPHASETYPE" datatype="U1"
 365                   contenttype="COMPILERPHASETYPE" type="u1" sizeop="sizeof(u1)" />
 366 
 367     <!-- VMOPERATIONTYPE -->
 368     <primary_type symbol="VMOPERATIONTYPE" datatype="U2" contenttype="VMOPERATIONTYPE"
 369                   type="u2" sizeop="sizeof(u2)" />
 370                   
 371     <!-- FLAGVALUEORIGIN -->
 372     <primary_type symbol="FLAGVALUEORIGIN" datatype="U1"
 373                   contenttype="FLAGVALUEORIGIN" type="u1" sizeop="sizeof(u1)" />

















 374 
 375   </primary_types>
 376 </types>
   1 <?xml version="1.0" encoding="utf-8"?>
   2 <!--
   3  Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
   4  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5 
   6  This code is free software; you can redistribute it and/or modify it
   7  under the terms of the GNU General Public License version 2 only, as
   8  published by the Free Software Foundation.
   9 
  10  This code is distributed in the hope that it will be useful, but WITHOUT
  11  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  version 2 for more details (a copy is included in the LICENSE file that
  14  accompanied this code).
  15 
  16  You should have received a copy of the GNU General Public License version
  17  2 along with this work; if not, write to the Free Software Foundation,
  18  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19 
  20  Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  or visit www.oracle.com if you need additional information or have any
  22  questions.
  23 -->
  24 
  25 <!DOCTYPE types SYSTEM "trace.dtd">

  26 <!--
  27 Content types (complex) should create constant pool data in the recording.


  28 Currently at least, there is _NO_ verification that whatever
  29 writer you have is actually writing correctly. So BE CAREFUL!

  30 Declared with the 'content_type' tag.
  31 <type> is the ID type (u8), i.e the integer type that resolves this.



  32 <content-type> is where it gets interesting. 'builtin_type' means we're
  33 defining how we resolve one of the trace built-in types (Class, Thread etc),
  34 jvm_type means defining a new one for our own use.

  35 Example: (GcMode)
  36 <content_type id="GCMode" hr_name="GC mode" type="U8" jvm_type="GCMODE">
  37   <value type="STRING" field="name" description="Description"/>

  38 </content_type>

  39 This creates a content type CONTENT_TYPE_GCMODE
  40 The field type referencing it is u8, and the constant pool struct has one field, the name.

  41 Before we can use it we need also define a primary field data type:
  42 <primary_type symbol="GCMODE" datatype="U8" contenttype="NONE"
  43               type="u8" sizeop="sizeof(u8)"/>


  44 Now we can use the content + data type in declaring event fields.
  45  -->
  46 
  47  <types>
  48   <content_types>
  49     <content_type id="Thread" hr_name="Thread"
  50                   type="U8" builtin_type="THREAD">
  51       <value type="STRING" field="osName" label="OS Thread Name"/>
  52       <value type="LONG" field="osThreadId" label="OS Thread Id"/>
  53       <value type="STRING" field="javaName" label="Java Thread Name"/>
  54       <value type="LONG" field="javaThreadId" label="Java Thread Id"/>











  55       <value type="THREADGROUP" field="group" label="Java Thread Group"/>
  56     </content_type>
  57 
  58     <content_type id="ThreadGroup" hr_name="Thread Group"
  59                   type="U8" jvm_type="THREADGROUP">
  60       <value type="THREADGROUP" field="parent" label="Parent"/>
  61       <value type="STRING" field="name" label="Name"/>
  62     </content_type>
  63 
  64     <content_type id="Class" hr_name="Java Class"
  65                   type="U8" builtin_type="CLASS">
  66       <value type="CLASSLOADER" field="classLoader" label="Class Loader"/>
  67       <value type="SYMBOL" field="name" label="Name"/>
  68       <value type="INTEGER" field="modifiers" label="Access Modifiers"/>
  69     </content_type>
  70 
  71     <content_type id="ClassLoader" hr_name="Java Class Loader"
  72                   type="U8" jvm_type="CLASSLOADER">
  73       <value type="CLASS" field="type" label="Type"/>
  74       <value type="SYMBOL" field="name" label="Name"/>
  75     </content_type>
  76 
  77     <content_type id="Method" hr_name="Java Method"
  78                   type="U8" jvm_type="METHOD">
  79       <value type="CLASS" field="type" label="Type"/>
  80       <value type="SYMBOL" field="name" label="Name"/>
  81       <value type="SYMBOL" field="descriptor" label="Descriptor"/>
  82       <value type="INTEGER" field="modifiers" label="Access Modifiers"/>
  83       <value type="BOOLEAN" field="hidden" label="Hidden"/>
  84     </content_type>
  85 
  86     <content_type id="Symbol" hr_name="Symbol"
  87                   type="U8" jvm_type="SYMBOL">
  88       <value type="STRING" field="string" label="String"/>
  89     </content_type>
  90 
  91     <content_type id="ThreadState" hr_name="Java Thread State"
  92                   type="U8" jvm_type="THREADSTATE">
  93       <value type="STRING" field="name" label="Name"/>
  94     </content_type>
  95 
  96     <content_type id="GCName" hr_name="GC Name"
  97                   type="U8" jvm_type="GCNAME">
  98       <value type="STRING" field="name" label="Name" />
  99     </content_type>
 100 
 101     <content_type id="GCCause" hr_name="GC Cause"
 102                   type="U8" jvm_type="GCCAUSE">
 103       <value type="STRING" field="cause" label="Cause" />
 104     </content_type>
 105 
 106     <content_type id="GCWhen" hr_name="GC When"
 107                   type="U8" jvm_type="GCWHEN">
 108       <value type="STRING" field="when" label="When" />
 109     </content_type>
 110 
 111     <content_type id="G1HeapRegionType" hr_name="G1 Heap Region Type"
 112                   type="U8" jvm_type="G1HEAPREGIONTYPE">
 113       <value type="STRING" field="type" label="Type" />
 114     </content_type>
 115     
 116     <content_type id="G1YCType" hr_name="G1 YC Type"
 117                   type="U8" jvm_type="G1YCTYPE">
 118       <value type="STRING" field="type" label="Type" />
 119     </content_type>
 120 
 121     <content_type id="GCThresholdUpdater" hr_name="GC Threshold Updater"
 122                   type="U8" jvm_type="GCTHRESHOLDUPDATER">
 123       <value type="STRING" field="updater" label="Updater" />
 124     </content_type>
 125 
 126     <content_type id="ReferenceType" hr_name="Reference Type"
 127                   type="U8" jvm_type="REFERENCETYPE">
 128       <value type="STRING" field="type" label="Type" />
 129     </content_type>
 130 
 131     <content_type id="MetadataType" hr_name="Metadata Type"
 132                   type="U8" jvm_type="METADATATYPE">
 133       <value type="STRING" field="type" label="Type" />
 134     </content_type>
 135 
 136     <content_type id="MetaspaceObjectType" hr_name="Metaspace Object Type"
 137                   type="U8" jvm_type="METASPACEOBJTYPE">
 138       <value type="STRING" field="type" label="Type" />
 139     </content_type>
 140 
 141     <content_type id="NarrowOopMode" hr_name="Narrow Oop Mode"
 142                   type="U8" jvm_type="NARROWOOPMODE">
 143       <value type="STRING" field="mode" label="Mode" />
 144     </content_type>
 145 
 146     <content_type id="VMOperationType" hr_name="VM Operation Type"
 147                   type="U8" jvm_type="VMOPERATIONTYPE">
 148       <value type="STRING" field="type" label="Type" />
 149     </content_type>
 150 
 151     <content_type id="CompilerPhaseType" hr_name="Compiler Phase Type"
 152                   type="U8" jvm_type="COMPILERPHASETYPE">
 153       <value type="STRING" field="phase" label="Phase" />
 154     </content_type>
 155 
 156     <content_type id="FlagValueOrigin" hr_name="Flag Value Origin"
 157                   type="U8" jvm_type="FLAGVALUEORIGIN">
 158       <value type="STRING" field="origin" label="Origin" />
 159     </content_type>
 160 
 161     <content_type id="CodeBlobType" hr_name="Code Blob Type"
 162                   type="U8" jvm_type="CODEBLOBTYPE">
 163       <value type="STRING" field="type" label="Type" />
 164     </content_type>
 165 
 166     <content_type id="InflateCause" hr_name="Inflation Cause"
 167                   type="U8" jvm_type="INFLATECAUSE">
 168       <value type="STRING" field="cause" label="Cause" />
 169     </content_type>
 170 
 171      <content_type id="StackTrace" hr_name="Stacktrace"
 172                   type="U8" builtin_type="STACKTRACE">
 173       <value type="BOOLEAN" field="truncated" label="Truncated"/>
 174       <structarray type="StackFrame" field="frames" label="Stack Frames"/>
 175     </content_type>
 176 
 177     <content_type id="FrameType" hr_name="Frame type"
 178                   type="U8" jvm_type="FRAMETYPE">
 179       <value type="STRING" field="description" label="Description"/>
 180     </content_type>
 181 
 182     <content_type id="OldObjectRootSystem" hr_name="GC Root System" type="U8" jvm_type="OLDOBJECTROOTSYSTEM">
 183       <value type="STRING" field="system" label="System"/>
 184     </content_type>
 185 
 186     <content_type id="OldObjectRootType" hr_name="GC Root Type" type="U8" jvm_type="OLDOBJECTROOTTYPE">
 187       <value type="STRING" field="type" label="Type"/>
 188     </content_type>
 189 
 190     <content_type id="OldObjectGcRoot" hr_name="GC Root" type="U8" jvm_type="OLDOBJECTGCROOT">
 191       <value type="STRING" field="description" label="Root Description" description="Root information"/>
 192       <value type="OLDOBJECTROOTSYSTEM" field="system" label="System" description="The subsystem of origin for the root"/>
 193       <value type="OLDOBJECTROOTTYPE" field="type" label="Type" description="The root type"/>
 194     </content_type>
 195 
 196     <content_type id="OldObjectArray" hr_name="Old Object Array" type="U8" jvm_type="OLDOBJECTARRAY">
 197       <value type="INTEGER" field="size" label="Array Size" description="Size of array"/>
 198       <value type="INTEGER" field="index" label="Index" description="Index in the array"/>
 199     </content_type>
 200 
 201     <content_type id="OldObjectField" hr_name="Old Object Field" type="U8" jvm_type="OLDOBJECTFIELD">
 202       <value type="STRING" field="name" label="Field" description="Name of field"/>
 203       <value type="SHORT" field="modifiers" label="Field Modifiers" description="Field modifiers"/>
 204     </content_type>
 205 
 206     <content_type id="OldObject" hr_name="Old Object" type="U8" jvm_type="OLDOBJECT">
 207       <value type="ADDRESS" field="address" label="Memory Address"/>
 208       <value type="CLASS" field="type" label="Java Class"/>
 209       <value type="STRING" field="description" label="Object Description" description="Object description"/>
 210       <value type="REFERENCE" field="referrer" label="Referrer Object"  description="Object referencing this object"/>
 211     </content_type>
 212 
 213     <content_type id="Reference" hr_name="Reference" type="U8" jvm_type="REFERENCE">
 214       <value type="OLDOBJECTARRAY" field="array" label="Array Information" description="Array or null if it is not an array"/>
 215       <value type="OLDOBJECTFIELD" field="field" label="Field Information" description="Field or null if it is an array"/>
 216       <value type="OLDOBJECT" field="object" label="Object" description="Object holder for this reference"/>
 217       <value type="INTEGER" field="skip" label="Skip value" description="The object is this many hops away"/>
 218     </content_type>
 219 
 220     <struct_type id="StackFrame">
 221       <value type="METHOD" field="method" label="Java Method"/>
 222       <value type="INTEGER" field="lineNumber" label="Line Number"/>
 223       <value type="INTEGER" field="bytecodeIndex" label="Bytecode Index"/>
 224       <value type="FRAMETYPE" field="type" label="Frame Type"/>
 225     </struct_type>
 226 
 227   </content_types>
 228 
 229 
 230   <primary_types>
 231     <!--
 232       - primary_type takes these attributes:
 233       -   symbol      INTEGER, LONG etc
 234       -   datatype    The trace datatype, see enum DataType
 235       -   contenttype Either resolved content type or the semantic meaning
 236       -   type        The actual type as used in structures etc
 237       -   sizeop      A function/macro that can be applied on a single
 238       -               struct value of type "type" and yield the factual byte
 239       -               size we need to write.  The % is replaced by the value
 240       -->
 241 
 242     <!-- SIGNED 64bit -->
 243     <primary_type symbol="LONG" datatype="LONG" contenttype="NONE"
 244                   type="s8" sizeop="sizeof(s8)"/>
 245 
 246     <!-- UNSIGNED 64bit -->


 267     <primary_type symbol="BYTE" datatype="BYTE" contenttype="NONE"
 268                   type="s1" sizeop="sizeof(s1)"/>
 269 
 270     <!--  UNSIGNED 8bit -->
 271     <primary_type symbol="UBYTE" datatype="U1" contenttype="NONE"
 272                   type="u1" sizeop="sizeof(u1)"/>
 273 
 274     <!--  float 32bit -->
 275     <primary_type symbol="FLOAT" datatype="FLOAT" contenttype="NONE"
 276                   type="float" sizeop="sizeof(float)"/>
 277 
 278     <!--  float 64bit -->
 279     <primary_type symbol="DOUBLE" datatype="DOUBLE" contenttype="NONE"
 280                   type="double" sizeop="sizeof(double)"/>
 281 
 282     <!-- boolean type (1-byte) -->
 283     <primary_type symbol="BOOLEAN" datatype="BOOLEAN" contenttype="NONE"
 284                   type="bool" sizeop="1"/>
 285 
 286     <!-- 32-bit unsigned integer, SEMANTIC value BYTES -->
 287     <primary_type symbol="BYTES" datatype="U8" contenttype="BYTES"
 288                   type="u8" sizeop="sizeof(u8)"/>
 289 
 290     <primary_type symbol="IOBYTES" datatype="U8" contenttype="BYTES"
 291                   type="u8" sizeop="sizeof(u8)"/>
 292 
 293     <!-- 64-bit unsigned integer, SEMANTIC value BYTES -->
 294     <primary_type symbol="BYTES64" datatype="U8" contenttype="BYTES"
 295                   type="u8" sizeop="sizeof(u8)"/>
 296 
 297     <!-- 64-bit unsigned integer, SEMANTIC value ABSOLUTE MILLISECONDS -->
 298     <primary_type symbol="EPOCHMILLIS" datatype="LONG" contenttype="EPOCHMILLIS"
 299                   type="s8" sizeop="sizeof(s8)"/>
 300 
 301     <!-- 64-bit unsigned integer, SEMANTIC value RELATIVE MILLISECONDS -->
 302     <primary_type symbol="MILLIS" datatype="LONG" contenttype="MILLIS"
 303                   type="s8" sizeop="sizeof(s8)"/>
 304 
 305     <!-- 64-bit unsigned integer, SEMANTIC value RELATIVE NANOSECONDS -->
 306     <primary_type symbol="NANOS" datatype="LONG" contenttype="NANOS"
 307                   type="s8" sizeop="sizeof(s8)"/>
 308 
 309     <!-- 64-bit signed integer, SEMANTIC value TICKS -->
 310     <primary_type symbol="TICKS" datatype="LONG" contenttype="TICKS"
 311                   type="Ticks" sizeop="sizeof(s8)"/>
 312 
 313     <!-- 64-bit signed integer, SEMANTIC value TICKS duration -->
 314     <primary_type symbol="TICKSPAN" datatype="LONG" contenttype="TICKS"
 315                   type="Tickspan" sizeop="sizeof(s8)"/>
 316 
 317     <!-- 64-bit unsigned integer, SEMANTIC value ADDRESS (mem loc) -->
 318     <primary_type symbol="ADDRESS" datatype="U8" contenttype="ADDRESS"
 319                   type="u8" sizeop="sizeof(u8)"/>
 320 
 321     <!-- 32-bit float, SEMANTIC value PERCENTAGE (0.0-1.0) -->
 322     <primary_type symbol="PERCENTAGE" datatype="FLOAT" contenttype="PERCENTAGE"
 323                   type="float" sizeop="sizeof(float)"/>
 324 
 325     <!-- STRING is a virtual type - depending on encoding
 326          it will have polymorphic content -->



 327     <primary_type symbol="STRING" datatype="STRING" contenttype="NONE"
 328                   type="const char*" sizeop="sizeof_utf(%)"/>
 329 
 330     <!-- Symbol* constant. Note that this may currently ONLY be used by
 331           classes, methods fields.  This restriction might be lifted. -->
 332     <primary_type symbol="SYMBOL" datatype="U8" contenttype="SYMBOL"
 333                   type="const Symbol*" sizeop="sizeof(u8)"/>
 334 
 335     <!-- A Klass *. The actual class is marked as "used" and will
 336          eventually be written into the recording constant pool -->
 337     <primary_type symbol="CLASS" datatype="U8" contenttype="CLASS"
 338                   type="const Klass*" sizeop="sizeof(u8)"/>
 339 
 340     <primary_type symbol="CLASSLOADER" datatype="U8" contenttype="CLASSLOADER"
 341               type="const ClassLoaderData*" sizeop="sizeof(u8)"/>
 342 
 343     <!-- A Method *. The method is marked as "used" and will eventually be
 344          written into the recording constant pool. -->
 345     <primary_type symbol="METHOD" datatype="U8" contenttype="METHOD"
 346                   type="const Method*" sizeop="sizeof(u8)"/>
 347     <!--  The type for stacktraces in the recording. Should not be used by

 348           events explicitly -->
 349     <primary_type symbol="STACKTRACE" datatype="U8" contenttype="STACKTRACE"
 350                   type="u8" sizeop="sizeof(u8)"/>
 351 
 352     <!-- Thread ID -->
 353     <primary_type symbol="THREAD" datatype="U8" contenttype="THREAD"
 354                   type="u8" sizeop="sizeof(u8)"/>
 355     <!-- Threadgroup. Only for thread constant pool -->
 356     <primary_type symbol="THREADGROUP" datatype="U8" contenttype="THREADGROUP"
 357                   type="u8" sizeop="sizeof(u8)"/>













 358     <!-- FRAMETYPE enum -->
 359     <primary_type symbol="FRAMETYPE" datatype="U8" contenttype="FRAMETYPE"
 360                   type="u8" sizeop="sizeof(u8)"/>
 361 
 362     <!-- THREADSTATE enum -->
 363     <primary_type symbol="THREADSTATE" datatype="U8" contenttype="THREADSTATE"
 364                   type="u8" sizeop="sizeof(u8)"/>
 365 
 366     <!-- GCName -->
 367     <primary_type symbol="GCNAME" datatype="U8" contenttype="GCNAME"
 368                   type="u8" sizeop="sizeof(u8)" />
 369 
 370     <!-- GCCAUSE -->
 371     <primary_type symbol="GCCAUSE" datatype="U8" contenttype="GCCAUSE"
 372                   type="u8" sizeop="sizeof(u8)" />
 373 
 374     <!-- GCWHEN -->
 375     <primary_type symbol="GCWHEN" datatype="U8" contenttype="GCWHEN"
 376                   type="u8" sizeop="sizeof(u8)" />
 377 
 378     <!-- G1HEAPREGIONTYPE -->
 379     <primary_type symbol="G1HEAPREGIONTYPE" datatype="U8" contenttype="G1HEAPREGIONTYPE"
 380                   type="u8" sizeop="sizeof(u8)" />
 381 
 382     <!-- G1YCType -->
 383     <primary_type symbol="G1YCTYPE" datatype="U8" contenttype="G1YCTYPE"
 384                   type="u8" sizeop="sizeof(u8)" />
 385 
 386     <!-- GCTHRESHOLDUPDATER -->
 387     <primary_type symbol="GCTHRESHOLDUPDATER" datatype="U8" contenttype="GCTHRESHOLDUPDATER"
 388                   type="u8" sizeop="sizeof(u8)" />
 389 
 390     <!-- REFERENCETYPE -->
 391     <primary_type symbol="REFERENCETYPE" datatype="U8" contenttype="REFERENCETYPE"
 392                   type="u8" sizeop="sizeof(u8)" />
 393 
 394     <!-- METADATATYPE -->
 395     <primary_type symbol="METADATATYPE" datatype="U8" contenttype="METADATATYPE"
 396                   type="u8" sizeop="sizeof(u8)" />
 397 
 398     <!-- METADATAOBJTYPE -->
 399     <primary_type symbol="METASPACEOBJTYPE" datatype="U8" contenttype="METASPACEOBJTYPE"
 400                   type="u8" sizeop="sizeof(u8)" />
 401 
 402     <!-- NARROWOOPMODE -->
 403     <primary_type symbol="NARROWOOPMODE" datatype="U8" contenttype="NARROWOOPMODE"
 404                   type="u8" sizeop="sizeof(u8)" />
 405 
 406     <!-- COMPILERPHASETYPE -->
 407     <primary_type symbol="COMPILERPHASETYPE" datatype="U8" contenttype="COMPILERPHASETYPE"
 408                   type="u8" sizeop="sizeof(u8)" />
 409 
 410     <!-- VMOPERATIONTYPE -->
 411     <primary_type symbol="VMOPERATIONTYPE" datatype="U8" contenttype="VMOPERATIONTYPE"
 412                   type="u8" sizeop="sizeof(u8)" />
 413                   
 414     <!-- FLAGVALUEORIGIN -->
 415     <primary_type symbol="FLAGVALUEORIGIN" datatype="U8" contenttype="FLAGVALUEORIGIN"
 416                   type="u8" sizeop="sizeof(u8)" />
 417                   
 418     <!-- CODEBLOBTYPE -->
 419     <primary_type symbol="CODEBLOBTYPE" datatype="U8" contenttype="CODEBLOBTYPE"
 420                   type="u8" sizeop="sizeof(u8)" />
 421 
 422     <!-- INFLATECAUSE -->
 423     <primary_type symbol="INFLATECAUSE" datatype="U8" contenttype="INFLATECAUSE"
 424                   type="u8" sizeop="sizeof(u8)" />
 425 
 426    <!-- THESE TYPES MAY NOT BE USED IN NORMAL EVENTS -->
 427     <primary_type symbol="OLDOBJECTROOTSYSTEM" datatype="U8" contenttype="OLDOBJECTROOTSYSTEM" type="u8" sizeop="sizeof(u8)"/>
 428     <primary_type symbol="OLDOBJECTROOTTYPE" datatype="U8" contenttype="OLDOBJECTROOTTYPE" type="u8" sizeop="sizeof(u8)"/>
 429     <primary_type symbol="OLDOBJECTGCROOT" datatype="U8" contenttype="OLDOBJECTGCROOT" type="u8" sizeop="sizeof(u8)"/>
 430     <primary_type symbol="OLDOBJECTARRAY" datatype="U8" contenttype="OLDOBJECTARRAY" type="u8" sizeop="sizeof(u8)"/>
 431     <primary_type symbol="OLDOBJECTFIELD" datatype="U8" contenttype="OLDOBJECTFIELD" type="u8" sizeop="sizeof(u8)"/>
 432     <primary_type symbol="OLDOBJECT" datatype="U8" contenttype="OLDOBJECT" type="u8" sizeop="sizeof(u8)"/>
 433     <primary_type symbol="REFERENCE" datatype="U8" contenttype="REFERENCE" type="u8" sizeop="sizeof(u8)"/>
 434 
 435   </primary_types>
 436 </types>
< prev index next >