140 LOG_TAG(objecttagging) \
141 LOG_TAG(obsolete) \
142 LOG_TAG(oldobject) \
143 LOG_TAG(oom) \
144 LOG_TAG(oopmap) \
145 LOG_TAG(oops) \
146 LOG_TAG(oopstorage) \
147 LOG_TAG(os) \
148 LOG_TAG(owner) \
149 LOG_TAG(page) \
150 LOG_TAG(pagesize) \
151 LOG_TAG(parser) \
152 LOG_TAG(patch) \
153 LOG_TAG(path) \
154 LOG_TAG(perf) \
155 LOG_TAG(periodic) \
156 LOG_TAG(phases) \
157 LOG_TAG(plab) \
158 LOG_TAG(placeholders) \
159 LOG_TAG(preempt) \
160 LOG_TAG(preorder) /* Trace all classes loaded in order referenced (not loaded) */ \
161 LOG_TAG(preview) /* Trace loading of preview feature types */ \
162 LOG_TAG(promotion) \
163 LOG_TAG(protectiondomain) /* "Trace protection domain verification" */ \
164 LOG_TAG(ptrqueue) \
165 LOG_TAG(purge) \
166 LOG_TAG(record) \
167 LOG_TAG(redefine) \
168 LOG_TAG(ref) \
169 LOG_TAG(refine) \
170 LOG_TAG(region) \
171 LOG_TAG(reloc) \
172 LOG_TAG(remset) \
173 LOG_TAG(resolve) \
174 LOG_TAG(safepoint) \
175 LOG_TAG(sampling) \
176 LOG_TAG(scavenge) \
177 LOG_TAG(sealed) \
178 LOG_TAG(setting) \
179 LOG_TAG(smr) \
194 LOG_TAG(survivor) \
195 LOG_TAG(suspend) \
196 LOG_TAG(sweep) \
197 LOG_TAG(symboltable) \
198 LOG_TAG(system) \
199 LOG_TAG(table) \
200 LOG_TAG(task) \
201 DEBUG_ONLY(LOG_TAG(test)) \
202 LOG_TAG(thread) \
203 LOG_TAG(throttle) \
204 LOG_TAG(timer) \
205 LOG_TAG(tlab) \
206 LOG_TAG(tracking) \
207 LOG_TAG(trimnative) /* trim native heap */ \
208 LOG_TAG(unload) /* Trace unloading of classes */ \
209 LOG_TAG(unmap) \
210 LOG_TAG(unshareable) \
211 NOT_PRODUCT(LOG_TAG(upcall)) \
212 LOG_TAG(update) \
213 LOG_TAG(valuebasedclasses) \
214 LOG_TAG(verification) \
215 LOG_TAG(verify) \
216 LOG_TAG(vmmutex) \
217 LOG_TAG(vmoperation) \
218 LOG_TAG(vmthread) \
219 LOG_TAG(vtables) \
220 LOG_TAG(vtablestubs)
221
222 #define PREFIX_LOG_TAG(T) (LogTag::_##T)
223
224 // Expand a set of log tags to their prefixed names.
225 // For error detection purposes, the macro passes one more tag than what is supported.
226 // If too many tags are given, a static assert in the log class will fail.
227 #define LOG_TAGS_EXPANDED(T0, T1, T2, T3, T4, T5, ...) PREFIX_LOG_TAG(T0), PREFIX_LOG_TAG(T1), PREFIX_LOG_TAG(T2), \
228 PREFIX_LOG_TAG(T3), PREFIX_LOG_TAG(T4), PREFIX_LOG_TAG(T5)
229 // The EXPAND_VARARGS macro is required for MSVC, or it will resolve the LOG_TAGS_EXPANDED macro incorrectly.
230 #define EXPAND_VARARGS(x) x
231 #define LOG_TAGS(...) EXPAND_VARARGS(LOG_TAGS_EXPANDED(__VA_ARGS__, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG))
232
233 // Log tags are used to classify log messages.
|
140 LOG_TAG(objecttagging) \
141 LOG_TAG(obsolete) \
142 LOG_TAG(oldobject) \
143 LOG_TAG(oom) \
144 LOG_TAG(oopmap) \
145 LOG_TAG(oops) \
146 LOG_TAG(oopstorage) \
147 LOG_TAG(os) \
148 LOG_TAG(owner) \
149 LOG_TAG(page) \
150 LOG_TAG(pagesize) \
151 LOG_TAG(parser) \
152 LOG_TAG(patch) \
153 LOG_TAG(path) \
154 LOG_TAG(perf) \
155 LOG_TAG(periodic) \
156 LOG_TAG(phases) \
157 LOG_TAG(plab) \
158 LOG_TAG(placeholders) \
159 LOG_TAG(preempt) \
160 LOG_TAG(preload) /* Trace successfull class preloading */ \
161 LOG_TAG(preorder) /* Trace all classes loaded in order referenced (not loaded) */ \
162 LOG_TAG(preview) /* Trace loading of preview feature types */ \
163 LOG_TAG(promotion) \
164 LOG_TAG(protectiondomain) /* "Trace protection domain verification" */ \
165 LOG_TAG(ptrqueue) \
166 LOG_TAG(purge) \
167 LOG_TAG(record) \
168 LOG_TAG(redefine) \
169 LOG_TAG(ref) \
170 LOG_TAG(refine) \
171 LOG_TAG(region) \
172 LOG_TAG(reloc) \
173 LOG_TAG(remset) \
174 LOG_TAG(resolve) \
175 LOG_TAG(safepoint) \
176 LOG_TAG(sampling) \
177 LOG_TAG(scavenge) \
178 LOG_TAG(sealed) \
179 LOG_TAG(setting) \
180 LOG_TAG(smr) \
195 LOG_TAG(survivor) \
196 LOG_TAG(suspend) \
197 LOG_TAG(sweep) \
198 LOG_TAG(symboltable) \
199 LOG_TAG(system) \
200 LOG_TAG(table) \
201 LOG_TAG(task) \
202 DEBUG_ONLY(LOG_TAG(test)) \
203 LOG_TAG(thread) \
204 LOG_TAG(throttle) \
205 LOG_TAG(timer) \
206 LOG_TAG(tlab) \
207 LOG_TAG(tracking) \
208 LOG_TAG(trimnative) /* trim native heap */ \
209 LOG_TAG(unload) /* Trace unloading of classes */ \
210 LOG_TAG(unmap) \
211 LOG_TAG(unshareable) \
212 NOT_PRODUCT(LOG_TAG(upcall)) \
213 LOG_TAG(update) \
214 LOG_TAG(valuebasedclasses) \
215 LOG_TAG(valuetypes) \
216 LOG_TAG(verification) \
217 LOG_TAG(verify) \
218 LOG_TAG(vmmutex) \
219 LOG_TAG(vmoperation) \
220 LOG_TAG(vmthread) \
221 LOG_TAG(vtables) \
222 LOG_TAG(vtablestubs)
223
224 #define PREFIX_LOG_TAG(T) (LogTag::_##T)
225
226 // Expand a set of log tags to their prefixed names.
227 // For error detection purposes, the macro passes one more tag than what is supported.
228 // If too many tags are given, a static assert in the log class will fail.
229 #define LOG_TAGS_EXPANDED(T0, T1, T2, T3, T4, T5, ...) PREFIX_LOG_TAG(T0), PREFIX_LOG_TAG(T1), PREFIX_LOG_TAG(T2), \
230 PREFIX_LOG_TAG(T3), PREFIX_LOG_TAG(T4), PREFIX_LOG_TAG(T5)
231 // The EXPAND_VARARGS macro is required for MSVC, or it will resolve the LOG_TAGS_EXPANDED macro incorrectly.
232 #define EXPAND_VARARGS(x) x
233 #define LOG_TAGS(...) EXPAND_VARARGS(LOG_TAGS_EXPANDED(__VA_ARGS__, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG, _NO_TAG))
234
235 // Log tags are used to classify log messages.
|