src/share/vm/trace/tracetypes.xml

Print this page
rev 12364 : 8170672: Event-based tracing to support classloader instances
Reviewed-by:


  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="U8" builtin_type="THREAD">
  64       <value type="STRING" field="osName" label="OS Thread Name"/>
  65       <value type="LONG" field="osThreadId" label="OS Thread Id"/>
  66       <value type="STRING" field="javaName" label="Java Thread Name"/>
  67       <value type="LONG" field="javaThreadId" label="Java Thread Id"/>
  68       <value type="THREADGROUP" field="group" label="Java Thread Group"/>
  69     </content_type>
  70 
  71     <content_type id="ThreadGroup" hr_name="Thread group"
  72                   type="U8" jvm_type="THREADGROUP">
  73       <value type="THREADGROUP" field="parent" label="Parent"/>
  74       <value type="STRING" field="name" label="Name"/>
  75     </content_type>
  76 
  77     <content_type id="Class" hr_name="Java class"
  78                   type="U8" builtin_type="CLASS">
  79       <value type="CLASS" field="classLoaderType" label="Class Loader"/>
  80       <value type="SYMBOL" field="name" label="Name"/>
  81       <value type="PACKAGE" field="package" label="Package"/>
  82       <value type="INTEGER" field="modifiers" label="Access Modifiers"/>
  83     </content_type>
  84 
  85     <content_type id="Method" hr_name="Java method"






  86                   type="U8" jvm_type="METHOD">
  87       <value type="CLASS" field="type" label="Type"/>
  88       <value type="SYMBOL" field="name" label="Name"/>
  89       <value type="SYMBOL" field="descriptor" label="Descriptor"/>
  90       <value type="INTEGER" field="modifiers" label="Access Modifiers"/>
  91       <value type="BOOLEAN" field="hidden" label="Hidden"/>
  92     </content_type>
  93 
  94     <content_type id="Symbol" hr_name="Symbol"
  95                   type="U8" jvm_type="SYMBOL">
  96       <value type="STRING" field="string" label="String"/>
  97     </content_type>
  98 
  99     <content_type id="ThreadState" hr_name="Java Thread State"
 100                   type="U8" jvm_type="THREADSTATE">
 101       <value type="STRING" field="name" label="Name"/>
 102     </content_type>
 103 
 104     <content_type id="GCName" hr_name="GC Name"
 105                   type="U8" jvm_type="GCNAME">


 109     <content_type id="GCCause" hr_name="GC Cause"
 110                   type="U8" jvm_type="GCCAUSE">
 111       <value type="STRING" field="cause" label="Cause" />
 112     </content_type>
 113 
 114     <content_type id="GCWhen" hr_name="GC When"
 115                   type="U8" jvm_type="GCWHEN">
 116       <value type="STRING" field="when" label="When" />
 117     </content_type>
 118 
 119     <content_type id="G1HeapRegionType" hr_name="G1 Heap Region Type"
 120                   type="U8" jvm_type="G1HEAPREGIONTYPE">
 121       <value type="STRING" field="type" label="Type" />
 122     </content_type>
 123     
 124     <content_type id="G1YCType" hr_name="G1 YC Type"
 125                   type="U8" jvm_type="G1YCTYPE">
 126       <value type="STRING" field="type" label="Type" />
 127     </content_type>
 128 
 129     <content_type id="GCThresholdUpdater" hr_name="GC Treshold Updater"
 130                   type="U8" jvm_type="GCTHRESHOLDUPDATER">
 131       <value type="STRING" field="updater" label="Updater" />
 132     </content_type>
 133 
 134     <content_type id="ReferenceType" hr_name="Reference Type"
 135                   type="U8" jvm_type="REFERENCETYPE">
 136       <value type="STRING" field="type" label="Type" />
 137     </content_type>
 138 
 139     <content_type id="MetadataType" hr_name="Metadata Type"
 140                   type="U8" jvm_type="METADATATYPE">
 141       <value type="STRING" field="type" label="Type" />
 142     </content_type>
 143 
 144     <content_type id="MetaspaceObjectType" hr_name="Metaspace Object Type"
 145                   type="U8" jvm_type="METASPACEOBJTYPE">
 146       <value type="STRING" field="type" label="Type" />
 147     </content_type>
 148 
 149     <content_type id="NarrowOopMode" hr_name="Narrow oop Mode"
 150                   type="U8" jvm_type="NARROWOOPMODE">
 151       <value type="STRING" field="mode" label="Mode" />
 152     </content_type>
 153 
 154     <content_type id="VMOperationType" hr_name="VM Operation Type"
 155                   type="U8" jvm_type="VMOPERATIONTYPE">
 156       <value type="STRING" field="type" label="Type" />
 157     </content_type>
 158 
 159     <content_type id="CompilerPhaseType" hr_name="Compiler Phase Type"
 160                   type="U8" jvm_type="COMPILERPHASETYPE">
 161       <value type="STRING" field="phase" label="Phase" />
 162     </content_type>
 163 
 164     <content_type id="FlagValueOrigin" hr_name="Flag Value Origin"
 165                   type="U8" jvm_type="FLAGVALUEORIGIN">
 166       <value type="STRING" field="origin" label="Origin" />
 167     </content_type>
 168 
 169     <content_type id="CodeBlobType" hr_name="Code Blob Type"
 170                   type="U8" jvm_type="CODEBLOBTYPE">
 171       <value type="STRING" field="type" label="Type" />
 172     </content_type>
 173 
 174     <content_type id="InflateCause" hr_name="Inflation Cause"
 175                   type="U8" jvm_type="INFLATECAUSE">
 176       <value type="STRING" field="cause" label="Cause" />
 177     </content_type>
 178 
 179     <content_type id="Module" hr_name="Module"
 180                   type="U8" jvm_type="MODULE">
 181       <value type="SYMBOL" field="name" label="Name"/>
 182       <value type="SYMBOL" field="version" label="Version"/>
 183       <value type="SYMBOL" field="location" label="Location"/>
 184       <value type="CLASS" field="classLoader" label="Class Loader"/>
 185     </content_type>
 186 
 187     <content_type id="Package" hr_name="Package"
 188                   type="U8" jvm_type="PACKAGE">
 189       <value type="SYMBOL" field="name" label="Name"/>
 190       <value type="MODULE" field="module" label="Module"/>
 191       <value type="BOOLEAN" field="exported" label="Exported"/>
 192     </content_type>
 193   </content_types>
 194 
 195 
 196   <primary_types>
 197     <!--
 198       - primary_type takes these attributes:
 199       -   symbol      INTEGER, LONG etc
 200       -   datatype    The trace datatype, see enum DataType
 201       -   contenttype Either resolved content type or the semantic meaning
 202       -   type        The actual type as used in structures etc
 203       -   sizeop      A function/macro that can be applied on a single
 204       -               struct value of type "type" and yield the factual byte


 286 
 287     <!-- 32-bit float, SEMANTIC value PERCENTAGE (0.0-1.0) -->
 288     <primary_type symbol="PERCENTAGE" datatype="FLOAT" contenttype="PERCENTAGE"
 289                   type="float" sizeop="sizeof(float)"/>
 290 
 291     <!-- STRING is a virtual type - depending on encoding
 292          it will have polymorphic content -->
 293     <primary_type symbol="STRING" datatype="STRING" contenttype="NONE"
 294                   type="const char*" sizeop="sizeof_utf(%)"/>
 295 
 296     <!-- Symbol* constant. Note that this may currently ONLY be used by
 297           classes, methods fields.  This restriction might be lifted. -->
 298     <primary_type symbol="SYMBOL" datatype="U8" contenttype="SYMBOL"
 299                   type="const Symbol*" sizeop="sizeof(u8)"/>
 300 
 301     <!-- A Klass *. The actual class is marked as "used" and will
 302          eventually be written into the recording constant pool -->
 303     <primary_type symbol="CLASS" datatype="U8" contenttype="CLASS"
 304                   type="const Klass*" sizeop="sizeof(u8)"/>
 305 



 306     <primary_type symbol="MODULE" datatype="U8" contenttype="MODULE"
 307                   type="const ModuleEntry*" sizeop="sizeof(u8)"/>
 308 
 309     <primary_type symbol="PACKAGE" datatype="U8" contenttype="PACKAGE"
 310                   type="const PackageEntry*" sizeop="sizeof(u8)"/>
 311 
 312     <!-- A Method *. The method is marked as "used" and will eventually be
 313          written into the recording constant pool. -->
 314     <primary_type symbol="METHOD" datatype="U8" contenttype="METHOD"
 315                   type="const Method*" sizeop="sizeof(u8)"/>
 316 
 317     <!--  The type for stacktraces in the recording. Shoudl not be used by
 318           events explicitly -->
 319     <primary_type symbol="STACKTRACE" datatype="U8" contenttype="STACKTRACE"
 320                   type="u8" sizeop="sizeof(u8)"/>
 321 
 322     <!-- Thread ID -->
 323     <primary_type symbol="THREAD" datatype="U8" contenttype="THREAD"
 324                   type="u8" sizeop="sizeof(u8)"/>
 325 




  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="U8" builtin_type="THREAD">
  64       <value type="STRING" field="osName" label="OS Thread Name"/>
  65       <value type="LONG" field="osThreadId" label="OS Thread Id"/>
  66       <value type="STRING" field="javaName" label="Java Thread Name"/>
  67       <value type="LONG" field="javaThreadId" label="Java Thread Id"/>
  68       <value type="THREADGROUP" field="group" label="Java Thread Group"/>
  69     </content_type>
  70 
  71     <content_type id="ThreadGroup" hr_name="Thread Group"
  72                   type="U8" jvm_type="THREADGROUP">
  73       <value type="THREADGROUP" field="parent" label="Parent"/>
  74       <value type="STRING" field="name" label="Name"/>
  75     </content_type>
  76 
  77     <content_type id="Class" hr_name="Java Class"
  78                   type="U8" builtin_type="CLASS">
  79       <value type="CLASSLOADER" field="classLoader" label="Class Loader"/>
  80       <value type="SYMBOL" field="name" label="Name"/>
  81       <value type="PACKAGE" field="package" label="Package"/>
  82       <value type="INTEGER" field="modifiers" label="Access Modifiers"/>
  83     </content_type>
  84 
  85     <content_type id="ClassLoader" hr_name="Java Class Loader"
  86                   type="U8" jvm_type="CLASSLOADER">
  87       <value type="CLASS" field="type" label="Type"/>
  88       <value type="SYMBOL" field="name" label="Name"/>
  89     </content_type>
  90 
  91     <content_type id="Method" hr_name="Java Method"
  92                   type="U8" jvm_type="METHOD">
  93       <value type="CLASS" field="type" label="Type"/>
  94       <value type="SYMBOL" field="name" label="Name"/>
  95       <value type="SYMBOL" field="descriptor" label="Descriptor"/>
  96       <value type="INTEGER" field="modifiers" label="Access Modifiers"/>
  97       <value type="BOOLEAN" field="hidden" label="Hidden"/>
  98     </content_type>
  99 
 100     <content_type id="Symbol" hr_name="Symbol"
 101                   type="U8" jvm_type="SYMBOL">
 102       <value type="STRING" field="string" label="String"/>
 103     </content_type>
 104 
 105     <content_type id="ThreadState" hr_name="Java Thread State"
 106                   type="U8" jvm_type="THREADSTATE">
 107       <value type="STRING" field="name" label="Name"/>
 108     </content_type>
 109 
 110     <content_type id="GCName" hr_name="GC Name"
 111                   type="U8" jvm_type="GCNAME">


 115     <content_type id="GCCause" hr_name="GC Cause"
 116                   type="U8" jvm_type="GCCAUSE">
 117       <value type="STRING" field="cause" label="Cause" />
 118     </content_type>
 119 
 120     <content_type id="GCWhen" hr_name="GC When"
 121                   type="U8" jvm_type="GCWHEN">
 122       <value type="STRING" field="when" label="When" />
 123     </content_type>
 124 
 125     <content_type id="G1HeapRegionType" hr_name="G1 Heap Region Type"
 126                   type="U8" jvm_type="G1HEAPREGIONTYPE">
 127       <value type="STRING" field="type" label="Type" />
 128     </content_type>
 129     
 130     <content_type id="G1YCType" hr_name="G1 YC Type"
 131                   type="U8" jvm_type="G1YCTYPE">
 132       <value type="STRING" field="type" label="Type" />
 133     </content_type>
 134 
 135     <content_type id="GCThresholdUpdater" hr_name="GC Threshold Updater"
 136                   type="U8" jvm_type="GCTHRESHOLDUPDATER">
 137       <value type="STRING" field="updater" label="Updater" />
 138     </content_type>
 139 
 140     <content_type id="ReferenceType" hr_name="Reference Type"
 141                   type="U8" jvm_type="REFERENCETYPE">
 142       <value type="STRING" field="type" label="Type" />
 143     </content_type>
 144 
 145     <content_type id="MetadataType" hr_name="Metadata Type"
 146                   type="U8" jvm_type="METADATATYPE">
 147       <value type="STRING" field="type" label="Type" />
 148     </content_type>
 149 
 150     <content_type id="MetaspaceObjectType" hr_name="Metaspace Object Type"
 151                   type="U8" jvm_type="METASPACEOBJTYPE">
 152       <value type="STRING" field="type" label="Type" />
 153     </content_type>
 154 
 155     <content_type id="NarrowOopMode" hr_name="Narrow Oop Mode"
 156                   type="U8" jvm_type="NARROWOOPMODE">
 157       <value type="STRING" field="mode" label="Mode" />
 158     </content_type>
 159 
 160     <content_type id="VMOperationType" hr_name="VM Operation Type"
 161                   type="U8" jvm_type="VMOPERATIONTYPE">
 162       <value type="STRING" field="type" label="Type" />
 163     </content_type>
 164 
 165     <content_type id="CompilerPhaseType" hr_name="Compiler Phase Type"
 166                   type="U8" jvm_type="COMPILERPHASETYPE">
 167       <value type="STRING" field="phase" label="Phase" />
 168     </content_type>
 169 
 170     <content_type id="FlagValueOrigin" hr_name="Flag Value Origin"
 171                   type="U8" jvm_type="FLAGVALUEORIGIN">
 172       <value type="STRING" field="origin" label="Origin" />
 173     </content_type>
 174 
 175     <content_type id="CodeBlobType" hr_name="Code Blob Type"
 176                   type="U8" jvm_type="CODEBLOBTYPE">
 177       <value type="STRING" field="type" label="Type" />
 178     </content_type>
 179 
 180     <content_type id="InflateCause" hr_name="Inflation Cause"
 181                   type="U8" jvm_type="INFLATECAUSE">
 182       <value type="STRING" field="cause" label="Cause" />
 183     </content_type>
 184 
 185     <content_type id="Module" hr_name="Module"
 186                   type="U8" jvm_type="MODULE">
 187       <value type="SYMBOL" field="name" label="Name"/>
 188       <value type="SYMBOL" field="version" label="Version"/>
 189       <value type="SYMBOL" field="location" label="Location"/>
 190       <value type="CLASSLOADER" field="classLoader" label="Class Loader"/>
 191     </content_type>
 192 
 193     <content_type id="Package" hr_name="Package"
 194                   type="U8" jvm_type="PACKAGE">
 195       <value type="SYMBOL" field="name" label="Name"/>
 196       <value type="MODULE" field="module" label="Module"/>
 197       <value type="BOOLEAN" field="exported" label="Exported"/>
 198     </content_type>
 199   </content_types>
 200 
 201 
 202   <primary_types>
 203     <!--
 204       - primary_type takes these attributes:
 205       -   symbol      INTEGER, LONG etc
 206       -   datatype    The trace datatype, see enum DataType
 207       -   contenttype Either resolved content type or the semantic meaning
 208       -   type        The actual type as used in structures etc
 209       -   sizeop      A function/macro that can be applied on a single
 210       -               struct value of type "type" and yield the factual byte


 292 
 293     <!-- 32-bit float, SEMANTIC value PERCENTAGE (0.0-1.0) -->
 294     <primary_type symbol="PERCENTAGE" datatype="FLOAT" contenttype="PERCENTAGE"
 295                   type="float" sizeop="sizeof(float)"/>
 296 
 297     <!-- STRING is a virtual type - depending on encoding
 298          it will have polymorphic content -->
 299     <primary_type symbol="STRING" datatype="STRING" contenttype="NONE"
 300                   type="const char*" sizeop="sizeof_utf(%)"/>
 301 
 302     <!-- Symbol* constant. Note that this may currently ONLY be used by
 303           classes, methods fields.  This restriction might be lifted. -->
 304     <primary_type symbol="SYMBOL" datatype="U8" contenttype="SYMBOL"
 305                   type="const Symbol*" sizeop="sizeof(u8)"/>
 306 
 307     <!-- A Klass *. The actual class is marked as "used" and will
 308          eventually be written into the recording constant pool -->
 309     <primary_type symbol="CLASS" datatype="U8" contenttype="CLASS"
 310                   type="const Klass*" sizeop="sizeof(u8)"/>
 311 
 312     <primary_type symbol="CLASSLOADER" datatype="U8" contenttype="CLASSLOADER"
 313               type="const ClassLoaderData*" sizeop="sizeof(u8)"/>
 314 
 315     <primary_type symbol="MODULE" datatype="U8" contenttype="MODULE"
 316                   type="const ModuleEntry*" sizeop="sizeof(u8)"/>
 317 
 318     <primary_type symbol="PACKAGE" datatype="U8" contenttype="PACKAGE"
 319                   type="const PackageEntry*" sizeop="sizeof(u8)"/>
 320 
 321     <!-- A Method *. The method is marked as "used" and will eventually be
 322          written into the recording constant pool. -->
 323     <primary_type symbol="METHOD" datatype="U8" contenttype="METHOD"
 324                   type="const Method*" sizeop="sizeof(u8)"/>
 325 
 326     <!--  The type for stacktraces in the recording. Shoudl not be used by
 327           events explicitly -->
 328     <primary_type symbol="STACKTRACE" datatype="U8" contenttype="STACKTRACE"
 329                   type="u8" sizeop="sizeof(u8)"/>
 330 
 331     <!-- Thread ID -->
 332     <primary_type symbol="THREAD" datatype="U8" contenttype="THREAD"
 333                   type="u8" sizeop="sizeof(u8)"/>
 334