| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef BASE_TRACE_EVENT_TRACE_EVENT_H_ | 5 #ifndef BASE_TRACE_EVENT_TRACE_EVENT_H_ |
| 6 #define BASE_TRACE_EVENT_TRACE_EVENT_H_ | 6 #define BASE_TRACE_EVENT_TRACE_EVENT_H_ |
| 7 | 7 |
| 8 // This header file defines implementation details of how the trace macros in | 8 // This header file defines implementation details of how the trace macros in |
| 9 // trace_event_common.h collect and store trace events. Anything not | 9 // trace_event_common.h collect and store trace events. Anything not |
| 10 // implementation-specific should go in trace_event_common.h instead of here. | 10 // implementation-specific should go in trace_event_common.h instead of here. |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 ->AddTraceEventWithThreadIdAndTimestamp | 176 ->AddTraceEventWithThreadIdAndTimestamp |
| 177 | 177 |
| 178 // Set the duration field of a COMPLETE trace event. | 178 // Set the duration field of a COMPLETE trace event. |
| 179 // void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( | 179 // void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( |
| 180 // const unsigned char* category_group_enabled, | 180 // const unsigned char* category_group_enabled, |
| 181 // const char* name, | 181 // const char* name, |
| 182 // base::trace_event::TraceEventHandle id) | 182 // base::trace_event::TraceEventHandle id) |
| 183 #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ | 183 #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ |
| 184 base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDuration | 184 base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDuration |
| 185 | 185 |
| 186 // Set the duration field of a COMPLETE trace event. |
| 187 // void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION_EXPLICIT( |
| 188 // const unsigned char* category_group_enabled, |
| 189 // const char* name, |
| 190 // base::trace_event::TraceEventHandle id, |
| 191 // const TimeTicks& now, |
| 192 // const ThreadTicks* thread_now) |
| 193 #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION_EXPLICIT \ |
| 194 base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDurationExplicit |
| 195 |
| 186 // Adds a metadata event to the trace log. The |AppendValueAsTraceFormat| method | 196 // Adds a metadata event to the trace log. The |AppendValueAsTraceFormat| method |
| 187 // on the convertable value will be called at flush time. | 197 // on the convertable value will be called at flush time. |
| 188 // TRACE_EVENT_API_ADD_METADATA_EVENT( | 198 // TRACE_EVENT_API_ADD_METADATA_EVENT( |
| 189 // const unsigned char* category_group_enabled, | 199 // const unsigned char* category_group_enabled, |
| 190 // const char* event_name, | 200 // const char* event_name, |
| 191 // const char* arg_name, | 201 // const char* arg_name, |
| 192 // std::unique_ptr<ConvertableToTraceFormat> arg_value) | 202 // std::unique_ptr<ConvertableToTraceFormat> arg_value) |
| 193 #define TRACE_EVENT_API_ADD_METADATA_EVENT \ | 203 #define TRACE_EVENT_API_ADD_METADATA_EVENT \ |
| 194 trace_event_internal::AddMetadataEvent | 204 trace_event_internal::AddMetadataEvent |
| 195 | 205 |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 flags | trace_event_trace_id.id_flags(); \ | 342 flags | trace_event_trace_id.id_flags(); \ |
| 333 trace_event_internal::AddTraceEventWithThreadIdAndTimestamp( \ | 343 trace_event_internal::AddTraceEventWithThreadIdAndTimestamp( \ |
| 334 phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ | 344 phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ |
| 335 trace_event_trace_id.scope(), trace_event_trace_id.raw_id(), \ | 345 trace_event_trace_id.scope(), trace_event_trace_id.raw_id(), \ |
| 336 thread_id, timestamp, \ | 346 thread_id, timestamp, \ |
| 337 trace_event_flags | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP, \ | 347 trace_event_flags | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP, \ |
| 338 trace_event_internal::kNoId, ##__VA_ARGS__); \ | 348 trace_event_internal::kNoId, ##__VA_ARGS__); \ |
| 339 } \ | 349 } \ |
| 340 } while (0) | 350 } while (0) |
| 341 | 351 |
| 352 // Implementation detail: internal macro to create static category and add |
| 353 // event if the category is enabled. |
| 354 #define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMPS( \ |
| 355 category_group, name, id, thread_id, begin_timestamp, end_timestamp, \ |
| 356 thread_end_timestamp, flags, ...) \ |
| 357 do { \ |
| 358 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| 359 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED()) { \ |
| 360 trace_event_internal::TraceID trace_event_trace_id((id)); \ |
| 361 unsigned int trace_event_flags = \ |
| 362 flags | trace_event_trace_id.id_flags(); \ |
| 363 const unsigned char* uid_category_group_enabled = \ |
| 364 INTERNAL_TRACE_EVENT_UID(category_group_enabled); \ |
| 365 auto handle = \ |
| 366 trace_event_internal::AddTraceEventWithThreadIdAndTimestamp( \ |
| 367 TRACE_EVENT_PHASE_COMPLETE, uid_category_group_enabled, name, \ |
| 368 trace_event_trace_id.scope(), trace_event_trace_id.raw_id(), \ |
| 369 thread_id, begin_timestamp, \ |
| 370 trace_event_flags | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP, \ |
| 371 trace_event_internal::kNoId, ##__VA_ARGS__); \ |
| 372 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION_EXPLICIT( \ |
| 373 uid_category_group_enabled, name, handle, end_timestamp, \ |
| 374 thread_end_timestamp); \ |
| 375 } \ |
| 376 } while (0) |
| 377 |
| 342 // The linked ID will not be mangled. | 378 // The linked ID will not be mangled. |
| 343 #define INTERNAL_TRACE_EVENT_ADD_LINK_IDS(category_group, name, id1, id2) \ | 379 #define INTERNAL_TRACE_EVENT_ADD_LINK_IDS(category_group, name, id1, id2) \ |
| 344 do { \ | 380 do { \ |
| 345 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ | 381 INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| 346 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED()) { \ | 382 if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED()) { \ |
| 347 trace_event_internal::TraceID source_id((id1)); \ | 383 trace_event_internal::TraceID source_id((id1)); \ |
| 348 unsigned int source_flags = source_id.id_flags(); \ | 384 unsigned int source_flags = source_id.id_flags(); \ |
| 349 trace_event_internal::TraceID target_id((id2)); \ | 385 trace_event_internal::TraceID target_id((id2)); \ |
| 350 trace_event_internal::AddTraceEvent( \ | 386 trace_event_internal::AddTraceEvent( \ |
| 351 TRACE_EVENT_PHASE_LINK_IDS, \ | 387 TRACE_EVENT_PHASE_LINK_IDS, \ |
| (...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 const char* name_; | 1145 const char* name_; |
| 1110 IDType id_; | 1146 IDType id_; |
| 1111 | 1147 |
| 1112 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject); | 1148 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject); |
| 1113 }; | 1149 }; |
| 1114 | 1150 |
| 1115 } // namespace trace_event | 1151 } // namespace trace_event |
| 1116 } // namespace base | 1152 } // namespace base |
| 1117 | 1153 |
| 1118 #endif // BASE_TRACE_EVENT_TRACE_EVENT_H_ | 1154 #endif // BASE_TRACE_EVENT_TRACE_EVENT_H_ |
| OLD | NEW |