Index: base/trace_event/trace_event.h |
diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h |
index faaccac8eaf34b40ff91b81e633df44246266a6a..261e925cdea776f198afc148d7e89fc149ff7e81 100644 |
--- a/base/trace_event/trace_event.h |
+++ b/base/trace_event/trace_event.h |
@@ -76,7 +76,13 @@ |
UNLIKELY(*INTERNAL_TRACE_EVENT_UID(category_group_enabled) & \ |
(base::trace_event::TraceLog::ENABLED_FOR_RECORDING | \ |
base::trace_event::TraceLog::ENABLED_FOR_EVENT_CALLBACK | \ |
- base::trace_event::TraceLog::ENABLED_FOR_ETW_EXPORT)) |
+ base::trace_event::TraceLog::ENABLED_FOR_ETW_EXPORT | \ |
+ base::trace_event::TraceLog::ENABLED_FOR_FILTERING)) |
Primiano Tucci (use gerrit)
2016/05/31 15:41:23
Do you really need this or-ed here?
I'd assume tha
oystein (OOO til 10th of July)
2016/08/01 13:39:49
I think that's right, 2) makes sense to me. The on
|
+ |
+#define INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_FILTERING_MODE( \ |
+ category_group_enabled) \ |
+ UNLIKELY(category_group_enabled& \ |
+ base::trace_event::TraceLog::ENABLED_FOR_FILTERING) |
//////////////////////////////////////////////////////////////////////////////// |
// Implementation specific tracing API definitions. |
@@ -185,6 +191,14 @@ |
#define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ |
base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDuration |
+// Call EndEvent on the filter for a filtered event. |
+// void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( |
+// const unsigned char* category_group_enabled, |
+// const char* name, |
+// base::trace_event::TraceEventHandle id) |
+#define TRACE_EVENT_API_END_FILTERED_EVENT \ |
+ base::trace_event::TraceLog::GetInstance()->EndFilteredEvent |
Primiano Tucci (use gerrit)
2016/05/27 17:47:06
Not sure you need this macro since you need this o
|
+ |
// Adds a metadata event to the trace log. The |AppendValueAsTraceFormat| method |
// on the convertable value will be called at flush time. |
// TRACE_EVENT_API_ADD_METADATA_EVENT( |
@@ -974,9 +988,15 @@ class TRACE_EVENT_API_CLASS_EXPORT ScopedTracer { |
ScopedTracer() : p_data_(NULL) {} |
~ScopedTracer() { |
- if (p_data_ && *data_.category_group_enabled) |
+ if (p_data_ && *data_.category_group_enabled) { |
TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( |
data_.category_group_enabled, data_.name, data_.event_handle); |
+ if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_FILTERING_MODE( |
+ *data_.category_group_enabled)) { |
+ TRACE_EVENT_API_END_FILTERED_EVENT(data_.category_group_enabled, |
+ data_.name, data_.event_handle); |
+ } |
+ } |
} |
void Initialize(const unsigned char* category_group_enabled, |