Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(842)

Unified Diff: base/trace_event/trace_event_impl.cc

Issue 1038453002: Add option to export tracing events to ETW. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add compiling manifest to GYP/GN. Formatting and other minor fixes. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/trace_event/trace_event_impl.cc
diff --git a/base/trace_event/trace_event_impl.cc b/base/trace_event/trace_event_impl.cc
index 72b46f92914c8d73d51068324f6c2a757371b5d1..d57481a67d5eec72359506dcd08786663178d616 100644
--- a/base/trace_event/trace_event_impl.cc
+++ b/base/trace_event/trace_event_impl.cc
@@ -35,6 +35,7 @@
#include "base/trace_event/trace_event_synthetic_delay.h"
#if defined(OS_WIN)
+#include "base/trace_event/trace_event_etw_export_win.h"
#include "base/trace_event/trace_event_win.h"
#endif
@@ -1290,6 +1291,11 @@ void TraceLog::UpdateCategoryGroupEnabledFlag(size_t category_index) {
if (event_callback_ &&
event_callback_category_filter_.IsCategoryGroupEnabled(category_group))
enabled_flag |= ENABLED_FOR_EVENT_CALLBACK;
+#if defined(OS_WIN)
+ if (base::trace_event::TraceEventETWExport::isETWExportEnabled())
+ enabled_flag |= ENABLED_FOR_ETW_EXPORT;
+#endif
+
g_category_group_enabled[category_index] = enabled_flag;
}
@@ -1896,6 +1902,13 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp(
if (!*category_group_enabled)
return handle;
+#if defined(OS_WIN)
+ if (*category_group_enabled & ENABLED_FOR_ETW_EXPORT)
dsinclair 2015/03/26 18:18:17 I think this should be down around where the andro
Georges Khalil 2015/03/26 23:09:19 After discussion, brought this down but before the
+ TraceEventETWExport::AddEvent(phase, category_group_enabled, name, id,
+ num_args, arg_names, arg_types, arg_values,
+ convertable_values);
+#endif // OS_WIN
+
// Avoid re-entrance of AddTraceEvent. This may happen in GPU process when
// ECHO_TO_CONSOLE is enabled: AddTraceEvent -> LOG(ERROR) ->
// GpuProcessLogMessageHandler -> PostPendingTask -> TRACE_EVENT ...
@@ -2114,6 +2127,12 @@ void TraceLog::UpdateTraceEventDuration(
const unsigned char* category_group_enabled,
const char* name,
TraceEventHandle handle) {
+#if defined(OS_WIN)
+ if (*category_group_enabled & ENABLED_FOR_ETW_EXPORT)
+ TraceEventETWExport::AddEvent(TRACE_EVENT_PHASE_END, category_group_enabled,
dsinclair 2015/03/26 18:18:17 This isn't what you want here. This is just going
Georges Khalil 2015/03/26 23:09:19 After review and discussion, this code should be r
+ name, 0, 0, NULL, NULL, NULL, NULL);
+#endif // OS_WIN
+
// Avoid re-entrance of AddTraceEvent. This may happen in GPU process when
// ECHO_TO_CONSOLE is enabled: AddTraceEvent -> LOG(ERROR) ->
// GpuProcessLogMessageHandler -> PostPendingTask -> TRACE_EVENT ...

Powered by Google App Engine
This is Rietveld 408576698