Chromium Code Reviews| Index: base/trace_event/trace_event.h |
| diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h |
| index e0249f5539a181175127ba4df1cc7fc489328f44..57a6850a957e2deba5e50e57ea499a4ab8c8bbce 100644 |
| --- a/base/trace_event/trace_event.h |
| +++ b/base/trace_event/trace_event.h |
| @@ -234,6 +234,19 @@ |
| INTERNAL_TRACE_EVENT_ADD_SCOPED( \ |
| category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) |
| +// Records a pair of begin and end events called "name" for the current scope |
| +// with 1 or 2 associated arguments. These events are associated with id. If the |
| +// category is not enabled, this does nothing. |
| +// - category and name strings must have application lifetime (statics or |
| +// literals). They may not include " chars. |
| +#define TRACE_EVENT_ID1(category_group, name, id, arg1_name, arg1_val) \ |
| + INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_ID( \ |
| + category_group, name, id, arg1_name, arg1_val) |
|
Sami
2015/04/29 15:01:51
It's not clear what |id| refers to here. Does it n
Dan Beam
2015/04/30 04:40:13
yes
|
| +#define TRACE_EVENT_ID2( \ |
| + category_group, name, id, arg1_name, arg1_val, arg2_name, arg2_val) \ |
| + INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_ID( \ |
| + category_group, name, id, arg1_name, arg1_val, arg2_name, arg2_val) |
| + |
| // Records events like TRACE_EVENT2 but uses |memory_tag| for memory tracing. |
| // Use this where |name| is too generic to accurately aggregate allocations. |
| #define TRACE_EVENT_WITH_MEMORY_TAG2( \ |
| @@ -1009,6 +1022,26 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ |
| INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, h); \ |
| } |
| +// Implementation detail: internal macro to create static category and add begin |
| +// event if the category is enabled. Also adds the end event when the scope |
| +// ends. |
| +#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_ID(category_group, name, id, ...) \ |
| + INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| + trace_event_internal::ScopedTracer INTERNAL_TRACE_EVENT_UID(tracer); \ |
| + if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ |
| + unsigned char trace_event_flags = TRACE_EVENT_FLAG_HAS_ID; \ |
| + trace_event_internal::TraceID trace_event_trace_id( \ |
| + id, &trace_event_flags); \ |
| + base::trace_event::TraceEventHandle h = \ |
| + trace_event_internal::AddTraceEvent( \ |
| + TRACE_EVENT_PHASE_COMPLETE, \ |
| + INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ |
| + trace_event_trace_id.data(), trace_event_flags, \ |
| + ##__VA_ARGS__); \ |
| + INTERNAL_TRACE_EVENT_UID(tracer).Initialize( \ |
| + INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, h); \ |
| + } |
| + |
| // Implementation detail: internal macro to create static category and add |
| // event if the category is enabled. |
| #define INTERNAL_TRACE_EVENT_ADD_WITH_ID(phase, category_group, name, id, \ |