Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Side by Side Diff: third_party/WebKit/Source/platform/TraceEvent.h

Issue 1359973003: Support tracing flow events v2 in Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 blink::TraceEvent::TraceEventHandle h = \ 166 blink::TraceEvent::TraceEventHandle h = \
167 blink::TraceEvent::addTraceEvent( \ 167 blink::TraceEvent::addTraceEvent( \
168 TRACE_EVENT_PHASE_COMPLETE, \ 168 TRACE_EVENT_PHASE_COMPLETE, \
169 INTERNALTRACEEVENTUID(categoryGroupEnabled), \ 169 INTERNALTRACEEVENTUID(categoryGroupEnabled), \
170 name, blink::TraceEvent::noEventId, \ 170 name, blink::TraceEvent::noEventId, \
171 TRACE_EVENT_FLAG_NONE, ##__VA_ARGS__); \ 171 TRACE_EVENT_FLAG_NONE, ##__VA_ARGS__); \
172 INTERNALTRACEEVENTUID(scopedTracer).initialize( \ 172 INTERNALTRACEEVENTUID(scopedTracer).initialize( \
173 INTERNALTRACEEVENTUID(categoryGroupEnabled), name, h); \ 173 INTERNALTRACEEVENTUID(categoryGroupEnabled), name, h); \
174 } 174 }
175 175
176 #define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(category, name, bindId, flowFl ags, ...) \
177 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
178 blink::TraceEvent::ScopedTracer INTERNALTRACEEVENTUID(scopedTracer); \
179 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
180 unsigned traceEventFlags = flowFlags; \
181 blink::TraceEvent::TraceID traceEventBindId(bindId, &traceEventFlags); \
182 blink::TraceEvent::TraceEventHandle h = \
183 blink::TraceEvent::addTraceEvent( \
184 TRACE_EVENT_PHASE_COMPLETE, \
185 INTERNALTRACEEVENTUID(categoryGroupEnabled), \
186 name, blink::TraceEvent::noEventId, traceEventBindId.data(), \
187 systemTraceTime(), traceEventFlags, ##__VA_ARGS__); \
188 INTERNALTRACEEVENTUID(scopedTracer).initialize( \
189 INTERNALTRACEEVENTUID(categoryGroupEnabled), name, h); \
190 }
191
176 // Implementation detail: internal macro to create static category and add 192 // Implementation detail: internal macro to create static category and add
177 // event if the category is enabled. 193 // event if the category is enabled.
178 #define INTERNAL_TRACE_EVENT_ADD_WITH_ID(phase, category, name, id, flags, ...) \ 194 #define INTERNAL_TRACE_EVENT_ADD_WITH_ID(phase, category, name, id, flags, ...) \
179 do { \ 195 do { \
180 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \ 196 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
181 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ 197 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
182 unsigned char traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \ 198 unsigned traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \
183 blink::TraceEvent::TraceID traceEventTraceID( \ 199 blink::TraceEvent::TraceID traceEventTraceID( \
184 id, &traceEventFlags); \ 200 id, &traceEventFlags); \
185 blink::TraceEvent::addTraceEvent( \ 201 blink::TraceEvent::addTraceEvent( \
186 phase, INTERNALTRACEEVENTUID(categoryGroupEnabled), \ 202 phase, INTERNALTRACEEVENTUID(categoryGroupEnabled), \
187 name, traceEventTraceID.data(), traceEventFlags, ##__VA_ARGS__); \ 203 name, traceEventTraceID.data(), traceEventFlags, ##__VA_ARGS__); \
188 } \ 204 } \
189 } while (0) 205 } while (0)
190 206
191 207
192 // Implementation detail: internal macro to create static category and add event 208 // Implementation detail: internal macro to create static category and add event
193 // if the category is enabled. 209 // if the category is enabled.
194 #define INTERNAL_TRACE_EVENT_ADD_WITH_ID_AND_TIMESTAMP(phase, category, name, id , timestamp, flags, ...) \ 210 #define INTERNAL_TRACE_EVENT_ADD_WITH_ID_AND_TIMESTAMP(phase, category, name, id , timestamp, flags, ...) \
195 do { \ 211 do { \
196 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \ 212 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
197 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ 213 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
198 unsigned char traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \ 214 unsigned traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \
199 blink::TraceEvent::TraceID traceEventTraceID( \ 215 blink::TraceEvent::TraceID traceEventTraceID( \
200 id, &traceEventFlags); \ 216 id, &traceEventFlags); \
201 blink::TraceEvent::addTraceEvent( \ 217 blink::TraceEvent::addTraceEvent( \
202 phase, INTERNALTRACEEVENTUID(categoryGroupEnabled), \ 218 phase, INTERNALTRACEEVENTUID(categoryGroupEnabled), \
203 name, traceEventTraceID.data(), timestamp, traceEventFlags, ##__ VA_ARGS__); \ 219 name, traceEventTraceID.data(), blink::TraceEvent::noBindId, \
220 timestamp, traceEventFlags, ##__VA_ARGS__); \
204 } \ 221 } \
205 } while (0) 222 } while (0)
206 223
207 // Implementation detail: internal macro to create static category and add 224 // Implementation detail: internal macro to create static category and add
208 // event if the category is enabled. 225 // event if the category is enabled.
209 #define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(phase, category, name, timestamp , flags, ...) \ 226 #define INTERNAL_TRACE_EVENT_ADD_WITH_TIMESTAMP(phase, category, name, timestamp , flags, ...) \
210 do { \ 227 do { \
211 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \ 228 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
212 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ 229 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
213 blink::TraceEvent::addTraceEvent( \ 230 blink::TraceEvent::addTraceEvent( \
214 phase, INTERNALTRACEEVENTUID(categoryGroupEnabled), name, \ 231 phase, INTERNALTRACEEVENTUID(categoryGroupEnabled), name, \
215 blink::TraceEvent::noEventId, timestamp, flags, ##__VA_ARGS__); \ 232 blink::TraceEvent::noEventId, blink::TraceEvent::noBindId, \
233 timestamp, flags, ##__VA_ARGS__); \
216 } \ 234 } \
217 } while (0) 235 } while (0)
218 236
219 237
220 // These values must be in sync with base::debug::TraceLog::CategoryGroupEnabled Flags. 238 // These values must be in sync with base::debug::TraceLog::CategoryGroupEnabled Flags.
221 #define ENABLED_FOR_RECORDING (1 << 0) 239 #define ENABLED_FOR_RECORDING (1 << 0)
222 #define ENABLED_FOR_EVENT_CALLBACK (1 << 2) 240 #define ENABLED_FOR_EVENT_CALLBACK (1 << 2)
223 241
224 #define INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE() \ 242 #define INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE() \
225 (*INTERNALTRACEEVENTUID(categoryGroupEnabled) & (ENABLED_FOR_RECORDING | ENA BLED_FOR_EVENT_CALLBACK)) 243 (*INTERNALTRACEEVENTUID(categoryGroupEnabled) & (ENABLED_FOR_RECORDING | ENA BLED_FOR_EVENT_CALLBACK))
226 244
227 #define INTERNAL_TRACE_MEMORY(category, name) 245 #define INTERNAL_TRACE_MEMORY(category, name)
228 246
229 namespace blink { 247 namespace blink {
230 248
231 namespace TraceEvent { 249 namespace TraceEvent {
232 250
233 // Specify these values when the corresponding argument of addTraceEvent is not 251 // Specify these values when the corresponding argument of addTraceEvent is not
234 // used. 252 // used.
235 const int zeroNumArgs = 0; 253 const int zeroNumArgs = 0;
236 const unsigned long long noEventId = 0; 254 const unsigned long long noEventId = 0;
255 const unsigned long long noBindId = 0;
237 256
238 // TraceID encapsulates an ID that can either be an integer or pointer. Pointers 257 // TraceID encapsulates an ID that can either be an integer or pointer. Pointers
239 // are mangled with the Process ID so that they are unlikely to collide when the 258 // are mangled with the Process ID so that they are unlikely to collide when the
240 // same pointer is used on different processes. 259 // same pointer is used on different processes.
241 class TraceID { 260 class TraceID {
242 public: 261 public:
243 template<bool dummyMangle> class MangleBehavior { 262 template<bool dummyMangle> class MangleBehavior {
244 public: 263 public:
245 template<typename T> explicit MangleBehavior(T id) : m_data(reinterpret_ cast<unsigned long long>(id)) { } 264 template<typename T> explicit MangleBehavior(T id) : m_data(reinterpret_ cast<unsigned long long>(id)) { }
246 unsigned long long data() const { return m_data; } 265 unsigned long long data() const { return m_data; }
247 private: 266 private:
248 unsigned long long m_data; 267 unsigned long long m_data;
249 }; 268 };
250 typedef MangleBehavior<false> DontMangle; 269 typedef MangleBehavior<false> DontMangle;
251 typedef MangleBehavior<true> ForceMangle; 270 typedef MangleBehavior<true> ForceMangle;
252 271
253 TraceID(const void* id, unsigned char* flags) : 272 TraceID(const void* id, unsigned* flags) :
254 m_data(static_cast<unsigned long long>(reinterpret_cast<unsigned long>(i d))) 273 m_data(static_cast<unsigned long long>(reinterpret_cast<unsigned long>(i d)))
255 { 274 {
256 *flags |= TRACE_EVENT_FLAG_MANGLE_ID; 275 *flags |= TRACE_EVENT_FLAG_MANGLE_ID;
257 } 276 }
258 TraceID(ForceMangle id, unsigned char* flags) : m_data(id.data()) 277 TraceID(ForceMangle id, unsigned* flags) : m_data(id.data())
259 { 278 {
260 *flags |= TRACE_EVENT_FLAG_MANGLE_ID; 279 *flags |= TRACE_EVENT_FLAG_MANGLE_ID;
261 } 280 }
262 TraceID(DontMangle id, unsigned char*) : m_data(id.data()) { } 281 TraceID(DontMangle id, unsigned*) : m_data(id.data()) { }
263 TraceID(unsigned long long id, unsigned char*) : m_data(id) { } 282 TraceID(unsigned long long id, unsigned*) : m_data(id) { }
264 TraceID(unsigned long id, unsigned char*) : m_data(id) { } 283 TraceID(unsigned long id, unsigned*) : m_data(id) { }
265 TraceID(unsigned id, unsigned char*) : m_data(id) { } 284 TraceID(unsigned id, unsigned*) : m_data(id) { }
266 TraceID(unsigned short id, unsigned char*) : m_data(id) { } 285 TraceID(unsigned short id, unsigned*) : m_data(id) { }
267 TraceID(unsigned char id, unsigned char*) : m_data(id) { } 286 TraceID(unsigned char id, unsigned*) : m_data(id) { }
268 TraceID(long long id, unsigned char*) : 287 TraceID(long long id, unsigned*) :
269 m_data(static_cast<unsigned long long>(id)) { } 288 m_data(static_cast<unsigned long long>(id)) { }
270 TraceID(long id, unsigned char*) : 289 TraceID(long id, unsigned*) :
271 m_data(static_cast<unsigned long long>(id)) { } 290 m_data(static_cast<unsigned long long>(id)) { }
272 TraceID(int id, unsigned char*) : 291 TraceID(int id, unsigned*) :
273 m_data(static_cast<unsigned long long>(id)) { } 292 m_data(static_cast<unsigned long long>(id)) { }
274 TraceID(short id, unsigned char*) : 293 TraceID(short id, unsigned*) :
275 m_data(static_cast<unsigned long long>(id)) { } 294 m_data(static_cast<unsigned long long>(id)) { }
276 TraceID(signed char id, unsigned char*) : 295 TraceID(signed char id, unsigned*) :
277 m_data(static_cast<unsigned long long>(id)) { } 296 m_data(static_cast<unsigned long long>(id)) { }
278 297
279 unsigned long long data() const { return m_data; } 298 unsigned long long data() const { return m_data; }
280 299
281 private: 300 private:
282 unsigned long long m_data; 301 unsigned long long m_data;
283 }; 302 };
284 303
285 // Simple union to store various types as unsigned long long. 304 // Simple union to store various types as unsigned long long.
286 union TraceValueUnion { 305 union TraceValueUnion {
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 // These addTraceEvent template functions are defined here instead of in the 404 // These addTraceEvent template functions are defined here instead of in the
386 // macro, because the arg values could be temporary string objects. In order to 405 // macro, because the arg values could be temporary string objects. In order to
387 // store pointers to the internal c_str and pass through to the tracing API, the 406 // store pointers to the internal c_str and pass through to the tracing API, the
388 // arg values must live throughout these procedures. 407 // arg values must live throughout these procedures.
389 408
390 static inline TraceEventHandle addTraceEvent( 409 static inline TraceEventHandle addTraceEvent(
391 char phase, 410 char phase,
392 const unsigned char* categoryEnabled, 411 const unsigned char* categoryEnabled,
393 const char* name, 412 const char* name,
394 unsigned long long id, 413 unsigned long long id,
414 unsigned long long bindId,
395 double timestamp, 415 double timestamp,
396 unsigned char flags) 416 unsigned flags)
397 { 417 {
398 return TRACE_EVENT_API_ADD_TRACE_EVENT( 418 return TRACE_EVENT_API_ADD_TRACE_EVENT(
399 phase, categoryEnabled, name, id, timestamp, 419 phase, categoryEnabled, name, id, bindId, timestamp,
400 zeroNumArgs, 0, 0, 0, 420 zeroNumArgs, 0, 0, 0,
401 flags); 421 flags);
402 } 422 }
403 423
404 template<typename ARG1_TYPE> 424 template <typename ARG1_TYPE>
405 static inline TraceEventHandle addTraceEvent( 425 static inline TraceEventHandle addTraceEvent(
406 char phase, 426 char phase,
407 const unsigned char* categoryEnabled, 427 const unsigned char* categoryEnabled,
408 const char* name, 428 const char* name,
409 unsigned long long id, 429 unsigned long long id,
430 unsigned long long bindId,
410 double timestamp, 431 double timestamp,
411 unsigned char flags, 432 unsigned flags,
412 const char* arg1Name, 433 const char* arg1Name,
413 const ARG1_TYPE& arg1Val) 434 const ARG1_TYPE& arg1Val)
414 { 435 {
415 const int numArgs = 1; 436 const int numArgs = 1;
416 unsigned char argTypes[1]; 437 unsigned char argTypes[1];
417 unsigned long long argValues[1]; 438 unsigned long long argValues[1];
418 setTraceValue(arg1Val, &argTypes[0], &argValues[0]); 439 setTraceValue(arg1Val, &argTypes[0], &argValues[0]);
419 if (isConvertableToTraceFormat(arg1Val)) { 440 if (isConvertableToTraceFormat(arg1Val)) {
420 return TRACE_EVENT_API_ADD_TRACE_EVENT( 441 return TRACE_EVENT_API_ADD_TRACE_EVENT(
421 phase, categoryEnabled, name, id, timestamp, 442 phase, categoryEnabled, name, id, bindId, timestamp,
422 numArgs, &arg1Name, argTypes, argValues, 443 numArgs, &arg1Name, argTypes, argValues,
423 moveFromIfConvertableToTraceFormat(arg1Val), 444 moveFromIfConvertableToTraceFormat(arg1Val),
424 nullptr, 445 nullptr,
425 flags); 446 flags);
426 } 447 }
427 return TRACE_EVENT_API_ADD_TRACE_EVENT( 448 return TRACE_EVENT_API_ADD_TRACE_EVENT(
428 phase, categoryEnabled, name, id, timestamp, 449 phase, categoryEnabled, name, id, bindId, timestamp,
429 numArgs, &arg1Name, argTypes, argValues, 450 numArgs, &arg1Name, argTypes, argValues,
430 flags); 451 flags);
431 } 452 }
432 453
433 template<typename ARG1_TYPE, typename ARG2_TYPE> 454 template<typename ARG1_TYPE, typename ARG2_TYPE>
434 static inline TraceEventHandle addTraceEvent( 455 static inline TraceEventHandle addTraceEvent(
435 char phase, 456 char phase,
436 const unsigned char* categoryEnabled, 457 const unsigned char* categoryEnabled,
437 const char* name, 458 const char* name,
438 unsigned long long id, 459 unsigned long long id,
460 unsigned long long bindId,
439 double timestamp, 461 double timestamp,
440 unsigned char flags, 462 unsigned flags,
441 const char* arg1Name, 463 const char* arg1Name,
442 const ARG1_TYPE& arg1Val, 464 const ARG1_TYPE& arg1Val,
443 const char* arg2Name, 465 const char* arg2Name,
444 const ARG2_TYPE& arg2Val) 466 const ARG2_TYPE& arg2Val)
445 { 467 {
446 const int numArgs = 2; 468 const int numArgs = 2;
447 const char* argNames[2] = { arg1Name, arg2Name }; 469 const char* argNames[2] = { arg1Name, arg2Name };
448 unsigned char argTypes[2]; 470 unsigned char argTypes[2];
449 unsigned long long argValues[2]; 471 unsigned long long argValues[2];
450 setTraceValue(arg1Val, &argTypes[0], &argValues[0]); 472 setTraceValue(arg1Val, &argTypes[0], &argValues[0]);
451 setTraceValue(arg2Val, &argTypes[1], &argValues[1]); 473 setTraceValue(arg2Val, &argTypes[1], &argValues[1]);
452 if (isConvertableToTraceFormat(arg1Val) || isConvertableToTraceFormat(arg2Va l)) { 474 if (isConvertableToTraceFormat(arg1Val) || isConvertableToTraceFormat(arg2Va l)) {
453 return TRACE_EVENT_API_ADD_TRACE_EVENT( 475 return TRACE_EVENT_API_ADD_TRACE_EVENT(
454 phase, categoryEnabled, name, id, timestamp, 476 phase, categoryEnabled, name, id, bindId, timestamp,
455 numArgs, argNames, argTypes, argValues, 477 numArgs, argNames, argTypes, argValues,
456 moveFromIfConvertableToTraceFormat(arg1Val), 478 moveFromIfConvertableToTraceFormat(arg1Val),
457 moveFromIfConvertableToTraceFormat(arg2Val), 479 moveFromIfConvertableToTraceFormat(arg2Val),
458 flags); 480 flags);
459 } 481 }
460 return TRACE_EVENT_API_ADD_TRACE_EVENT( 482 return TRACE_EVENT_API_ADD_TRACE_EVENT(
461 phase, categoryEnabled, name, id, timestamp, 483 phase, categoryEnabled, name, id, bindId, timestamp,
462 numArgs, argNames, argTypes, argValues, 484 numArgs, argNames, argTypes, argValues,
463 flags); 485 flags);
464 } 486 }
465 487
466 static inline TraceEventHandle addTraceEvent( 488 static inline TraceEventHandle addTraceEvent(
467 char phase, 489 char phase,
468 const unsigned char* categoryEnabled, 490 const unsigned char* categoryEnabled,
469 const char* name, 491 const char* name,
470 unsigned long long id, 492 unsigned long long id,
471 unsigned char flags) 493 unsigned flags)
472 { 494 {
473 return addTraceEvent(phase, categoryEnabled, name, id, systemTraceTime(), fl ags); 495 return addTraceEvent(phase, categoryEnabled, name, id, blink::TraceEvent::no BindId,
496 systemTraceTime(), flags);
474 } 497 }
475 498
476 template<typename ARG1_TYPE> 499 template<typename ARG1_TYPE>
477 static inline TraceEventHandle addTraceEvent( 500 static inline TraceEventHandle addTraceEvent(
478 char phase, 501 char phase,
479 const unsigned char* categoryEnabled, 502 const unsigned char* categoryEnabled,
480 const char* name, 503 const char* name,
481 unsigned long long id, 504 unsigned long long id,
482 unsigned char flags, 505 unsigned flags,
483 const char* arg1Name, 506 const char* arg1Name,
484 const ARG1_TYPE& arg1Val) 507 const ARG1_TYPE& arg1Val)
485 { 508 {
486 return addTraceEvent(phase, categoryEnabled, name, id, systemTraceTime(), fl ags, arg1Name, arg1Val); 509 return addTraceEvent(phase, categoryEnabled, name, id, blink::TraceEvent::no BindId,
510 systemTraceTime(), flags, arg1Name, arg1Val);
487 } 511 }
488 512
489 513
490 template<typename ARG1_TYPE, typename ARG2_TYPE> 514 template<typename ARG1_TYPE, typename ARG2_TYPE>
491 static inline TraceEventHandle addTraceEvent( 515 static inline TraceEventHandle addTraceEvent(
492 char phase, 516 char phase,
493 const unsigned char* categoryEnabled, 517 const unsigned char* categoryEnabled,
494 const char* name, 518 const char* name,
495 unsigned long long id, 519 unsigned long long id,
496 unsigned char flags, 520 unsigned flags,
497 const char* arg1Name, 521 const char* arg1Name,
498 const ARG1_TYPE& arg1Val, 522 const ARG1_TYPE& arg1Val,
499 const char* arg2Name, 523 const char* arg2Name,
500 const ARG2_TYPE& arg2Val) 524 const ARG2_TYPE& arg2Val)
501 { 525 {
502 return addTraceEvent(phase, categoryEnabled, name, id, systemTraceTime(), fl ags, arg1Name, arg1Val, arg2Name, arg2Val); 526 return addTraceEvent(phase, categoryEnabled, name, id, blink::TraceEvent::no BindId,
527 systemTraceTime(), flags, arg1Name, arg1Val, arg2Name, arg2Val);
503 } 528 }
504 529
505 // Used by TRACE_EVENTx macro. Do not use directly. 530 // Used by TRACE_EVENTx macro. Do not use directly.
506 class ScopedTracer { 531 class ScopedTracer {
507 public: 532 public:
508 // Note: members of m_data intentionally left uninitialized. See initialize. 533 // Note: members of m_data intentionally left uninitialized. See initialize.
509 ScopedTracer() : m_pdata(0) { } 534 ScopedTracer() : m_pdata(0) { }
510 ~ScopedTracer() 535 ~ScopedTracer()
511 { 536 {
512 if (m_pdata && *m_pdata->categoryGroupEnabled) 537 if (m_pdata && *m_pdata->categoryGroupEnabled)
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 const char* m_categoryGroup; 611 const char* m_categoryGroup;
587 const char* m_name; 612 const char* m_name;
588 IDType m_id; 613 IDType m_id;
589 }; 614 };
590 615
591 } // namespace TraceEvent 616 } // namespace TraceEvent
592 617
593 } // namespace blink 618 } // namespace blink
594 619
595 #endif 620 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/EventTracer.cpp ('k') | third_party/WebKit/public/platform/Platform.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698