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
|