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 |