| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |