diff options
author | chiniforooshan <chiniforooshan@chromium.org> | 2016-02-01 11:19:39 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-01 19:20:50 +0000 |
commit | 12827b68174c363351b05a8e7f7c29e1d9c0c01d (patch) | |
tree | 5487a7ad80c44b2fa096a68dc4b6c838b332ef29 | |
parent | 9b785ed1bb9c7f1630f6201a485839e40eb9dc86 (diff) | |
download | chromium_src-12827b68174c363351b05a8e7f7c29e1d9c0c01d.zip chromium_src-12827b68174c363351b05a8e7f7c29e1d9c0c01d.tar.gz chromium_src-12827b68174c363351b05a8e7f7c29e1d9c0c01d.tar.bz2 |
Add Scopes to Trace IDs
This enables us to us scoped IDs in tracing without doubling the
number of macros.
Design doc:
https://docs.google.com/document/d/1ODGoUwjcyiM2RwD8OD_gpRCxkBubcKArA8_n3W43HAY/edit?usp=sharing
BUG=579112
Review URL: https://codereview.chromium.org/1487793002
Cr-Commit-Position: refs/heads/master@{#372718}
-rw-r--r-- | base/trace_event/memory_dump_manager.cc | 4 | ||||
-rw-r--r-- | base/trace_event/trace_event.h | 243 | ||||
-rw-r--r-- | base/trace_event/trace_event_impl.cc | 12 | ||||
-rw-r--r-- | base/trace_event/trace_event_impl.h | 5 | ||||
-rw-r--r-- | base/trace_event/trace_event_unittest.cc | 66 | ||||
-rw-r--r-- | base/trace_event/trace_log.cc | 24 | ||||
-rw-r--r-- | base/trace_event/trace_log.h | 6 | ||||
-rw-r--r-- | base/trace_event/trace_sampling_thread.cc | 6 | ||||
-rw-r--r-- | gin/v8_platform.cc | 3 | ||||
-rw-r--r-- | ppapi/shared_impl/ppb_trace_event_impl.cc | 4 | ||||
-rw-r--r-- | skia/ext/event_tracer_impl.cc | 5 | ||||
-rw-r--r-- | third_party/WebKit/Source/platform/EventTracer.cpp | 2 | ||||
-rw-r--r-- | third_party/libjingle/overrides/init_webrtc.cc | 6 | ||||
-rw-r--r-- | ui/gl/angle_platform_impl.cc | 3 |
14 files changed, 264 insertions, 125 deletions
diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc index cb59448..a549202 100644 --- a/base/trace_event/memory_dump_manager.cc +++ b/base/trace_event/memory_dump_manager.cc @@ -20,6 +20,7 @@ #include "base/trace_event/memory_dump_provider.h" #include "base/trace_event/memory_dump_session_state.h" #include "base/trace_event/process_memory_dump.h" +#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event_argument.h" #include "build/build_config.h" @@ -493,7 +494,8 @@ void MemoryDumpManager::FinalizeDumpAndAddToTrace( TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_PROCESS_ID( TRACE_EVENT_PHASE_MEMORY_DUMP, TraceLog::GetCategoryGroupEnabled(kTraceCategory), event_name, - dump_guid, pid, kTraceEventNumArgs, kTraceEventArgNames, + trace_event_internal::kGlobalScope, dump_guid, pid, + kTraceEventNumArgs, kTraceEventArgNames, kTraceEventArgTypes, nullptr /* arg_values */, &event_value, TRACE_EVENT_FLAG_HAS_ID); } diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h index a9a92d4..e9507f7 100644 --- a/base/trace_event/trace_event.h +++ b/base/trace_event/trace_event.h @@ -37,6 +37,11 @@ #define TRACE_ID_DONT_MANGLE(id) \ trace_event_internal::TraceID::DontMangle(id) +// By default, trace IDs are eventually converted to a single 64-bit number. Use +// this macro to add a scope string. +#define TRACE_ID_WITH_SCOPE(scope, id) \ + trace_event_internal::TraceID::WithScope(scope, id) + // Sets the current sample state to the given category and name (both must be // constant strings). These states are intended for a sampling profiler. // Implementation note: we store category and name together because we don't @@ -99,6 +104,7 @@ // char phase, // const unsigned char* category_group_enabled, // const char* name, +// const char* scope, // unsigned long long id, // int num_args, // const char** arg_names, @@ -116,6 +122,7 @@ // char phase, // const unsigned char* category_group_enabled, // const char* name, +// const char* scope, // unsigned long long id, // unsigned long long bind_id, // int num_args, @@ -135,6 +142,7 @@ // char phase, // const unsigned char* category_group_enabled, // const char* name, +// const char* scope, // unsigned long long id, // int process_id, // int num_args, @@ -153,6 +161,7 @@ // char phase, // const unsigned char* category_group_enabled, // const char* name, +// const char* scope, // unsigned long long id, // int thread_id, // const TimeTicks& timestamp, @@ -244,8 +253,8 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ trace_event_internal::AddTraceEvent( \ phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ - trace_event_internal::kNoId, flags, \ - trace_event_internal::kNoId, ##__VA_ARGS__); \ + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, \ + flags, trace_event_internal::kNoId, ##__VA_ARGS__); \ } \ } while (0) @@ -260,8 +269,9 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ trace_event_internal::AddTraceEvent( \ TRACE_EVENT_PHASE_COMPLETE, \ INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ - trace_event_internal::kNoId, TRACE_EVENT_FLAG_NONE, \ - trace_event_internal::kNoId, ##__VA_ARGS__); \ + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, \ + TRACE_EVENT_FLAG_NONE, trace_event_internal::kNoId, \ + ##__VA_ARGS__); \ INTERNAL_TRACE_EVENT_UID(tracer).Initialize( \ INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, h); \ } @@ -278,8 +288,8 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ trace_event_internal::AddTraceEvent( \ TRACE_EVENT_PHASE_COMPLETE, \ INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ - trace_event_internal::kNoId, trace_event_flags, \ - trace_event_bind_id.data(), ##__VA_ARGS__); \ + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, \ + trace_event_flags, trace_event_bind_id.raw_id(), ##__VA_ARGS__); \ INTERNAL_TRACE_EVENT_UID(tracer).Initialize( \ INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, h); \ } @@ -296,8 +306,8 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ id, &trace_event_flags); \ trace_event_internal::AddTraceEvent( \ phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), \ - name, trace_event_trace_id.data(), trace_event_flags, \ - trace_event_internal::kNoId, ##__VA_ARGS__); \ + name, trace_event_trace_id.scope(), trace_event_trace_id.raw_id(), \ + trace_event_flags, trace_event_internal::kNoId, ##__VA_ARGS__); \ } \ } while (0) @@ -310,7 +320,8 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ trace_event_internal::AddTraceEventWithThreadIdAndTimestamp( \ phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ - trace_event_internal::kNoId, TRACE_EVENT_API_CURRENT_THREAD_ID, \ + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, \ + TRACE_EVENT_API_CURRENT_THREAD_ID, \ base::TimeTicks::FromInternalValue(timestamp), \ flags | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP, \ trace_event_internal::kNoId, ##__VA_ARGS__); \ @@ -329,8 +340,8 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ &trace_event_flags); \ trace_event_internal::AddTraceEventWithThreadIdAndTimestamp( \ phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ - trace_event_trace_id.data(), thread_id, \ - base::TimeTicks::FromInternalValue(timestamp), \ + trace_event_trace_id.scope(), trace_event_trace_id.raw_id(), \ + thread_id, base::TimeTicks::FromInternalValue(timestamp), \ trace_event_flags | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP, \ trace_event_internal::kNoId, ##__VA_ARGS__); \ } \ @@ -347,6 +358,7 @@ namespace trace_event_internal { // Specify these values when the corresponding argument of AddTraceEvent is not // used. const int kZeroNumArgs = 0; +const std::nullptr_t kGlobalScope = nullptr; const unsigned long long kNoId = 0; // TraceID encapsulates an ID that can either be an integer or pointer. Pointers @@ -354,87 +366,112 @@ const unsigned long long kNoId = 0; // collide when the same pointer is used on different processes. class TraceID { public: + class WithScope { + public: + WithScope(const char* scope, unsigned long long raw_id) + : scope_(scope), raw_id_(raw_id) {} + unsigned long long raw_id() const { return raw_id_; } + const char* scope() const { return scope_; } + private: + const char* scope_ = nullptr; + unsigned long long raw_id_; + }; + class DontMangle { public: - explicit DontMangle(const void* id) - : data_(static_cast<unsigned long long>( - reinterpret_cast<uintptr_t>(id))) {} - explicit DontMangle(unsigned long long id) : data_(id) {} - explicit DontMangle(unsigned long id) : data_(id) {} - explicit DontMangle(unsigned int id) : data_(id) {} - explicit DontMangle(unsigned short id) : data_(id) {} - explicit DontMangle(unsigned char id) : data_(id) {} - explicit DontMangle(long long id) - : data_(static_cast<unsigned long long>(id)) {} - explicit DontMangle(long id) - : data_(static_cast<unsigned long long>(id)) {} - explicit DontMangle(int id) - : data_(static_cast<unsigned long long>(id)) {} - explicit DontMangle(short id) - : data_(static_cast<unsigned long long>(id)) {} - explicit DontMangle(signed char id) - : data_(static_cast<unsigned long long>(id)) {} - unsigned long long data() const { return data_; } + explicit DontMangle(const void* raw_id) + : raw_id_(static_cast<unsigned long long>( + reinterpret_cast<uintptr_t>(raw_id))) {} + explicit DontMangle(unsigned long long raw_id) : raw_id_(raw_id) {} + explicit DontMangle(unsigned long raw_id) : raw_id_(raw_id) {} + explicit DontMangle(unsigned int raw_id) : raw_id_(raw_id) {} + explicit DontMangle(unsigned short raw_id) : raw_id_(raw_id) {} + explicit DontMangle(unsigned char raw_id) : raw_id_(raw_id) {} + explicit DontMangle(long long raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit DontMangle(long raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit DontMangle(int raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit DontMangle(short raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit DontMangle(signed char raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit DontMangle(WithScope scoped_id) + : scope_(scoped_id.scope()), raw_id_(scoped_id.raw_id()) {} + const char* scope() const { return scope_; } + unsigned long long raw_id() const { return raw_id_; } private: - unsigned long long data_; + const char* scope_ = nullptr; + unsigned long long raw_id_; }; class ForceMangle { public: - explicit ForceMangle(unsigned long long id) : data_(id) {} - explicit ForceMangle(unsigned long id) : data_(id) {} - explicit ForceMangle(unsigned int id) : data_(id) {} - explicit ForceMangle(unsigned short id) : data_(id) {} - explicit ForceMangle(unsigned char id) : data_(id) {} - explicit ForceMangle(long long id) - : data_(static_cast<unsigned long long>(id)) {} - explicit ForceMangle(long id) - : data_(static_cast<unsigned long long>(id)) {} - explicit ForceMangle(int id) - : data_(static_cast<unsigned long long>(id)) {} - explicit ForceMangle(short id) - : data_(static_cast<unsigned long long>(id)) {} - explicit ForceMangle(signed char id) - : data_(static_cast<unsigned long long>(id)) {} - unsigned long long data() const { return data_; } + explicit ForceMangle(unsigned long long raw_id) : raw_id_(raw_id) {} + explicit ForceMangle(unsigned long raw_id) : raw_id_(raw_id) {} + explicit ForceMangle(unsigned int raw_id) : raw_id_(raw_id) {} + explicit ForceMangle(unsigned short raw_id) : raw_id_(raw_id) {} + explicit ForceMangle(unsigned char raw_id) : raw_id_(raw_id) {} + explicit ForceMangle(long long raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit ForceMangle(long raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit ForceMangle(int raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit ForceMangle(short raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + explicit ForceMangle(signed char raw_id) + : raw_id_(static_cast<unsigned long long>(raw_id)) {} + unsigned long long raw_id() const { return raw_id_; } private: - unsigned long long data_; + unsigned long long raw_id_; }; - TraceID(const void* id, unsigned int* flags) - : data_(static_cast<unsigned long long>( - reinterpret_cast<uintptr_t>(id))) { + TraceID(const void* raw_id, unsigned int* flags) + : raw_id_(static_cast<unsigned long long>( + reinterpret_cast<uintptr_t>(raw_id))) { *flags |= TRACE_EVENT_FLAG_MANGLE_ID; } - TraceID(ForceMangle id, unsigned int* flags) : data_(id.data()) { + TraceID(ForceMangle raw_id, unsigned int* flags) : raw_id_(raw_id.raw_id()) { *flags |= TRACE_EVENT_FLAG_MANGLE_ID; } - TraceID(DontMangle id, unsigned int* flags) : data_(id.data()) { + TraceID(DontMangle maybe_scoped_id, unsigned int* flags) + : scope_(maybe_scoped_id.scope()), raw_id_(maybe_scoped_id.raw_id()) { + } + TraceID(unsigned long long raw_id, unsigned int* flags) : raw_id_(raw_id) { + (void)flags; } - TraceID(unsigned long long id, unsigned int* flags) - : data_(id) { (void)flags; } - TraceID(unsigned long id, unsigned int* flags) - : data_(id) { (void)flags; } - TraceID(unsigned int id, unsigned int* flags) - : data_(id) { (void)flags; } - TraceID(unsigned short id, unsigned int* flags) - : data_(id) { (void)flags; } - TraceID(unsigned char id, unsigned int* flags) - : data_(id) { (void)flags; } - TraceID(long long id, unsigned int* flags) - : data_(static_cast<unsigned long long>(id)) { (void)flags; } - TraceID(long id, unsigned int* flags) - : data_(static_cast<unsigned long long>(id)) { (void)flags; } - TraceID(int id, unsigned int* flags) - : data_(static_cast<unsigned long long>(id)) { (void)flags; } - TraceID(short id, unsigned int* flags) - : data_(static_cast<unsigned long long>(id)) { (void)flags; } - TraceID(signed char id, unsigned int* flags) - : data_(static_cast<unsigned long long>(id)) { (void)flags; } - - unsigned long long data() const { return data_; } + TraceID(unsigned long raw_id, unsigned int* flags) : raw_id_(raw_id) { + (void)flags; + } + TraceID(unsigned int raw_id, unsigned int* flags) : raw_id_(raw_id) { + (void)flags; + } + TraceID(unsigned short raw_id, unsigned int* flags) : raw_id_(raw_id) { + (void)flags; + } + TraceID(unsigned char raw_id, unsigned int* flags) : raw_id_(raw_id) { + (void)flags; + } + TraceID(long long raw_id, unsigned int* flags) + : raw_id_(static_cast<unsigned long long>(raw_id)) { (void)flags; } + TraceID(long raw_id, unsigned int* flags) + : raw_id_(static_cast<unsigned long long>(raw_id)) { (void)flags; } + TraceID(int raw_id, unsigned int* flags) + : raw_id_(static_cast<unsigned long long>(raw_id)) { (void)flags; } + TraceID(short raw_id, unsigned int* flags) + : raw_id_(static_cast<unsigned long long>(raw_id)) { (void)flags; } + TraceID(signed char raw_id, unsigned int* flags) + : raw_id_(static_cast<unsigned long long>(raw_id)) { (void)flags; } + TraceID(WithScope scoped_id, unsigned int* flags) + : scope_(scoped_id.scope()), raw_id_(scoped_id.raw_id()) {} + + unsigned long long raw_id() const { return raw_id_; } + const char* scope() const { return scope_; } private: - unsigned long long data_; + const char* scope_ = nullptr; + unsigned long long raw_id_; }; // Simple union to store various types as unsigned long long. @@ -550,6 +587,7 @@ AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const base::TimeTicks& timestamp, @@ -561,8 +599,8 @@ AddTraceEventWithThreadIdAndTimestamp( const int num_args = 1; unsigned char arg_types[1] = { TRACE_VALUE_TYPE_CONVERTABLE }; return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, bind_id, thread_id, timestamp, - num_args, &arg1_name, arg_types, NULL, &arg1_val, flags); + phase, category_group_enabled, name, scope, id, bind_id, thread_id, + timestamp, num_args, &arg1_name, arg_types, NULL, &arg1_val, flags); } template<class ARG1_TYPE> @@ -571,6 +609,7 @@ AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const base::TimeTicks& timestamp, @@ -594,8 +633,9 @@ AddTraceEventWithThreadIdAndTimestamp( convertable_values[1] = arg2_val; return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, bind_id, thread_id, timestamp, - num_args, arg_names, arg_types, arg_values, convertable_values, flags); + phase, category_group_enabled, name, scope, id, bind_id, thread_id, + timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, + flags); } template<class ARG2_TYPE> @@ -604,6 +644,7 @@ AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const base::TimeTicks& timestamp, @@ -627,8 +668,9 @@ AddTraceEventWithThreadIdAndTimestamp( convertable_values[0] = arg1_val; return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, bind_id, thread_id, timestamp, - num_args, arg_names, arg_types, arg_values, convertable_values, flags); + phase, category_group_enabled, name, scope, id, bind_id, thread_id, + timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, + flags); } static inline base::trace_event::TraceEventHandle @@ -636,6 +678,7 @@ AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const base::TimeTicks& timestamp, @@ -654,8 +697,9 @@ AddTraceEventWithThreadIdAndTimestamp( convertable_values[2] = {arg1_val, arg2_val}; return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, bind_id, thread_id, timestamp, - num_args, arg_names, arg_types, NULL, convertable_values, flags); + phase, category_group_enabled, name, scope, id, bind_id, thread_id, + timestamp, num_args, arg_names, arg_types, NULL, convertable_values, + flags); } static inline base::trace_event::TraceEventHandle @@ -663,27 +707,30 @@ AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const base::TimeTicks& timestamp, unsigned int flags, unsigned long long bind_id) { return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, bind_id, thread_id, timestamp, - kZeroNumArgs, NULL, NULL, NULL, NULL, flags); + phase, category_group_enabled, name, scope, id, bind_id, thread_id, + timestamp, kZeroNumArgs, NULL, NULL, NULL, NULL, flags); } static inline base::trace_event::TraceEventHandle AddTraceEvent( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned int flags, unsigned long long bind_id) { const int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); const base::TimeTicks now = base::TimeTicks::Now(); return AddTraceEventWithThreadIdAndTimestamp( - phase, category_group_enabled, name, id, thread_id, now, flags, bind_id); + phase, category_group_enabled, name, scope, id, thread_id, now, flags, + bind_id); } template<class ARG1_TYPE> @@ -692,6 +739,7 @@ AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const base::TimeTicks& timestamp, @@ -704,8 +752,8 @@ AddTraceEventWithThreadIdAndTimestamp( unsigned long long arg_values[1]; SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, bind_id, thread_id, timestamp, - num_args, &arg1_name, arg_types, arg_values, NULL, flags); + phase, category_group_enabled, name, scope, id, bind_id, thread_id, + timestamp, num_args, &arg1_name, arg_types, arg_values, NULL, flags); } template<class ARG1_TYPE> @@ -713,6 +761,7 @@ static inline base::trace_event::TraceEventHandle AddTraceEvent( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned int flags, unsigned long long bind_id, @@ -720,9 +769,9 @@ static inline base::trace_event::TraceEventHandle AddTraceEvent( const ARG1_TYPE& arg1_val) { int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); base::TimeTicks now = base::TimeTicks::Now(); - return AddTraceEventWithThreadIdAndTimestamp(phase, category_group_enabled, - name, id, thread_id, now, flags, - bind_id, arg1_name, arg1_val); + return AddTraceEventWithThreadIdAndTimestamp( + phase, category_group_enabled, name, scope, id, thread_id, now, flags, + bind_id, arg1_name, arg1_val); } template<class ARG1_TYPE, class ARG2_TYPE> @@ -731,6 +780,7 @@ AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const base::TimeTicks& timestamp, @@ -747,8 +797,8 @@ AddTraceEventWithThreadIdAndTimestamp( SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]); return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, bind_id, thread_id, timestamp, - num_args, arg_names, arg_types, arg_values, NULL, flags); + phase, category_group_enabled, name, scope, id, bind_id, thread_id, + timestamp, num_args, arg_names, arg_types, arg_values, NULL, flags); } template<class ARG1_TYPE, class ARG2_TYPE> @@ -756,6 +806,7 @@ static inline base::trace_event::TraceEventHandle AddTraceEvent( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned int flags, unsigned long long bind_id, @@ -766,8 +817,8 @@ static inline base::trace_event::TraceEventHandle AddTraceEvent( int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); base::TimeTicks now = base::TimeTicks::Now(); return AddTraceEventWithThreadIdAndTimestamp( - phase, category_group_enabled, name, id, thread_id, now, flags, bind_id, - arg1_name, arg1_val, arg2_name, arg2_val); + phase, category_group_enabled, name, scope, id, thread_id, now, flags, + bind_id, arg1_name, arg1_val, arg2_name, arg2_val); } static inline void AddMetadataEvent( diff --git a/base/trace_event/trace_event_impl.cc b/base/trace_event/trace_event_impl.cc index 24d6568..2ac1962 100644 --- a/base/trace_event/trace_event_impl.cc +++ b/base/trace_event/trace_event_impl.cc @@ -41,6 +41,7 @@ void CopyTraceEventParameter(char** buffer, TraceEvent::TraceEvent() : duration_(TimeDelta::FromInternalValue(-1)), + scope_(trace_event_internal::kGlobalScope), id_(0u), category_group_enabled_(NULL), name_(NULL), @@ -59,6 +60,7 @@ void TraceEvent::CopyFrom(const TraceEvent& other) { timestamp_ = other.timestamp_; thread_timestamp_ = other.thread_timestamp_; duration_ = other.duration_; + scope_ = other.scope_; id_ = other.id_; category_group_enabled_ = other.category_group_enabled_; name_ = other.name_; @@ -85,6 +87,7 @@ void TraceEvent::Initialize( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned long long bind_id, int num_args, @@ -96,6 +99,7 @@ void TraceEvent::Initialize( timestamp_ = timestamp; thread_timestamp_ = thread_timestamp; duration_ = TimeDelta::FromInternalValue(-1); + scope_ = scope; id_ = id; category_group_enabled_ = category_group_enabled; name_ = name; @@ -126,7 +130,7 @@ void TraceEvent::Initialize( bool copy = !!(flags & TRACE_EVENT_FLAG_COPY); size_t alloc_size = 0; if (copy) { - alloc_size += GetAllocLength(name); + alloc_size += GetAllocLength(name) + GetAllocLength(scope); for (i = 0; i < num_args; ++i) { alloc_size += GetAllocLength(arg_names_[i]); if (arg_types_[i] == TRACE_VALUE_TYPE_STRING) @@ -153,6 +157,7 @@ void TraceEvent::Initialize( const char* end = ptr + alloc_size; if (copy) { CopyTraceEventParameter(&ptr, &name_, end); + CopyTraceEventParameter(&ptr, &scope_, end); for (i = 0; i < num_args; ++i) { CopyTraceEventParameter(&ptr, &arg_names_[i], end); } @@ -354,8 +359,11 @@ void TraceEvent::AppendAsJSON( // If id_ is set, print it out as a hex string so we don't loose any // bits (it might be a 64-bit pointer). - if (flags_ & TRACE_EVENT_FLAG_HAS_ID) + if (flags_ & TRACE_EVENT_FLAG_HAS_ID) { + if (scope_ != trace_event_internal::kGlobalScope) + StringAppendF(out, ",\"scope\":\"%s\"", scope_); StringAppendF(out, ",\"id\":\"0x%" PRIx64 "\"", static_cast<uint64_t>(id_)); + } if (flags_ & TRACE_EVENT_FLAG_BIND_TO_ENCLOSING) StringAppendF(out, ",\"bp\":\"e\""); diff --git a/base/trace_event/trace_event_impl.h b/base/trace_event/trace_event_impl.h index 36461e2..d0ac463 100644 --- a/base/trace_event/trace_event_impl.h +++ b/base/trace_event/trace_event_impl.h @@ -104,6 +104,7 @@ class BASE_EXPORT TraceEvent { char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned long long bind_id, int num_args, @@ -135,6 +136,7 @@ class BASE_EXPORT TraceEvent { int thread_id() const { return thread_id_; } TimeDelta duration() const { return duration_; } TimeDelta thread_duration() const { return thread_duration_; } + const char* scope() const { return scope_; } unsigned long long id() const { return id_; } unsigned int flags() const { return flags_; } @@ -160,7 +162,8 @@ class BASE_EXPORT TraceEvent { ThreadTicks thread_timestamp_; TimeDelta duration_; TimeDelta thread_duration_; - // id_ can be used to store phase-specific data. + // scope_ and id_ can be used to store phase-specific data. + const char* scope_; unsigned long long id_; TraceValue arg_values_[kTraceMaxNumArgs]; const char* arg_names_[kTraceMaxNumArgs]; diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc index dc28c79..a0bd5ae9 100644 --- a/base/trace_event/trace_event_unittest.cc +++ b/base/trace_event/trace_event_unittest.cc @@ -501,6 +501,13 @@ void TraceWithAllMacroVariants(WaitableEvent* task_complete_event) { 0x2128506); trackable.snapshot("world"); + TRACE_EVENT_OBJECT_CREATED_WITH_ID( + "all", "tracked object 3", TRACE_ID_WITH_SCOPE("scope", 0x42)); + TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID( + "all", "tracked object 3", TRACE_ID_WITH_SCOPE("scope", 0x42), "hello"); + TRACE_EVENT_OBJECT_DELETED_WITH_ID( + "all", "tracked object 3", TRACE_ID_WITH_SCOPE("scope", 0x42)); + TRACE_EVENT1(kControlCharacters, kControlCharacters, kControlCharacters, kControlCharacters); @@ -806,6 +813,7 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { EXPECT_TRUE((item && item->GetString("ph", &phase))); EXPECT_EQ("N", phase); + EXPECT_FALSE((item && item->HasKey("scope"))); EXPECT_TRUE((item && item->GetString("id", &id))); EXPECT_EQ("0x42", id); @@ -813,6 +821,7 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { EXPECT_TRUE(item); EXPECT_TRUE(item && item->GetString("ph", &phase)); EXPECT_EQ("O", phase); + EXPECT_FALSE((item && item->HasKey("scope"))); EXPECT_TRUE(item && item->GetString("id", &id)); EXPECT_EQ("0x42", id); EXPECT_TRUE(item && item->GetString("args.snapshot", &snapshot)); @@ -822,6 +831,7 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { EXPECT_TRUE(item); EXPECT_TRUE(item && item->GetString("ph", &phase)); EXPECT_EQ("D", phase); + EXPECT_FALSE((item && item->HasKey("scope"))); EXPECT_TRUE(item && item->GetString("id", &id)); EXPECT_EQ("0x42", id); } @@ -854,6 +864,41 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { EXPECT_EQ("0x2128506", id); } + EXPECT_FIND_("tracked object 3"); + { + std::string phase; + std::string scope; + std::string id; + std::string snapshot; + + EXPECT_TRUE((item && item->GetString("ph", &phase))); + EXPECT_EQ("N", phase); + EXPECT_TRUE((item && item->GetString("scope", &scope))); + EXPECT_EQ("scope", scope); + EXPECT_TRUE((item && item->GetString("id", &id))); + EXPECT_EQ("0x42", id); + + item = FindTraceEntry(trace_parsed, "tracked object 3", item); + EXPECT_TRUE(item); + EXPECT_TRUE(item && item->GetString("ph", &phase)); + EXPECT_EQ("O", phase); + EXPECT_TRUE((item && item->GetString("scope", &scope))); + EXPECT_EQ("scope", scope); + EXPECT_TRUE(item && item->GetString("id", &id)); + EXPECT_EQ("0x42", id); + EXPECT_TRUE(item && item->GetString("args.snapshot", &snapshot)); + EXPECT_EQ("hello", snapshot); + + item = FindTraceEntry(trace_parsed, "tracked object 3", item); + EXPECT_TRUE(item); + EXPECT_TRUE(item && item->GetString("ph", &phase)); + EXPECT_EQ("D", phase); + EXPECT_TRUE((item && item->GetString("scope", &scope))); + EXPECT_EQ("scope", scope); + EXPECT_TRUE(item && item->GetString("id", &id)); + EXPECT_EQ("0x42", id); + } + EXPECT_FIND_(kControlCharacters); EXPECT_SUB_FIND_(kControlCharacters); @@ -1513,14 +1558,16 @@ TEST_F(TraceEventTestFixture, StaticStringVsString) { // Test that string arguments are copied. TraceEventHandle handle1 = trace_event_internal::AddTraceEvent( - TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name1", 0, 0, - trace_event_internal::kNoId, + TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name1", + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, + 0, trace_event_internal::kNoId, "arg1", std::string("argval"), "arg2", std::string("argval")); // Test that static TRACE_STR_COPY string arguments are copied. TraceEventHandle handle2 = trace_event_internal::AddTraceEvent( - TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name2", 0, 0, - trace_event_internal::kNoId, + TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name2", + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, + 0, trace_event_internal::kNoId, "arg1", TRACE_STR_COPY("argval"), "arg2", TRACE_STR_COPY("argval")); EXPECT_GT(tracer->GetStatus().event_count, 1u); @@ -1542,16 +1589,18 @@ TEST_F(TraceEventTestFixture, StaticStringVsString) { // Test that static literal string arguments are not copied. TraceEventHandle handle1 = trace_event_internal::AddTraceEvent( - TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name1", 0, 0, - trace_event_internal::kNoId, + TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name1", + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, + 0, trace_event_internal::kNoId, "arg1", "argval", "arg2", "argval"); // Test that static TRACE_STR_COPY NULL string arguments are not copied. const char* str1 = NULL; const char* str2 = NULL; TraceEventHandle handle2 = trace_event_internal::AddTraceEvent( - TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name2", 0, 0, - trace_event_internal::kNoId, + TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name2", + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, + 0, trace_event_internal::kNoId, "arg1", TRACE_STR_COPY(str1), "arg2", TRACE_STR_COPY(str2)); EXPECT_GT(tracer->GetStatus().event_count, 1u); @@ -2456,6 +2505,7 @@ class TraceEventCallbackTest : public TraceEventTestFixture { char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int num_args, const char* const arg_names[], diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc index 5dc38bf..65aa23a 100644 --- a/base/trace_event/trace_log.cc +++ b/base/trace_event/trace_log.cc @@ -140,6 +140,7 @@ void InitializeMetadataEvent(TraceEvent* trace_event, TRACE_EVENT_PHASE_METADATA, &g_category_group_enabled[g_category_metadata], metadata_name, + trace_event_internal::kGlobalScope, // scope trace_event_internal::kNoId, // id trace_event_internal::kNoId, // bind_id num_args, @@ -1053,6 +1054,7 @@ TraceEventHandle TraceLog::AddTraceEvent( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int num_args, const char** arg_names, @@ -1066,6 +1068,7 @@ TraceEventHandle TraceLog::AddTraceEvent( phase, category_group_enabled, name, + scope, id, trace_event_internal::kNoId, // bind_id thread_id, @@ -1082,6 +1085,7 @@ TraceEventHandle TraceLog::AddTraceEventWithBindId( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned long long bind_id, int num_args, @@ -1096,6 +1100,7 @@ TraceEventHandle TraceLog::AddTraceEventWithBindId( phase, category_group_enabled, name, + scope, id, bind_id, thread_id, @@ -1112,6 +1117,7 @@ TraceEventHandle TraceLog::AddTraceEventWithProcessId( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int process_id, int num_args, @@ -1125,6 +1131,7 @@ TraceEventHandle TraceLog::AddTraceEventWithProcessId( phase, category_group_enabled, name, + scope, id, trace_event_internal::kNoId, // bind_id process_id, @@ -1143,6 +1150,7 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const TimeTicks& timestamp, @@ -1156,6 +1164,7 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp( phase, category_group_enabled, name, + scope, id, trace_event_internal::kNoId, // bind_id thread_id, @@ -1172,6 +1181,7 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp( char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned long long bind_id, int thread_id, @@ -1278,6 +1288,7 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp( phase, category_group_enabled, name, + scope, id, bind_id, num_args, @@ -1324,8 +1335,8 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp( event_callback( offset_event_timestamp, phase == TRACE_EVENT_PHASE_COMPLETE ? TRACE_EVENT_PHASE_BEGIN : phase, - category_group_enabled, name, id, num_args, arg_names, arg_types, - arg_values, flags); + category_group_enabled, name, scope, id, num_args, arg_names, + arg_types, arg_values, flags); } } @@ -1359,6 +1370,7 @@ void TraceLog::AddMetadataEvent( 0, // thread_id TimeTicks(), ThreadTicks(), TRACE_EVENT_PHASE_METADATA, &g_category_group_enabled[g_category_metadata], name, + trace_event_internal::kGlobalScope, // scope trace_event_internal::kNoId, // id trace_event_internal::kNoId, // bind_id num_args, arg_names, arg_types, arg_values, convertable_values, flags); @@ -1469,9 +1481,10 @@ void TraceLog::UpdateTraceEventDuration( EventCallback event_callback = reinterpret_cast<EventCallback>( subtle::NoBarrier_Load(&event_callback_)); if (event_callback) { - event_callback(now, TRACE_EVENT_PHASE_END, category_group_enabled, name, - trace_event_internal::kNoId, 0, - nullptr, nullptr, nullptr, TRACE_EVENT_FLAG_NONE); + event_callback( + now, TRACE_EVENT_PHASE_END, category_group_enabled, name, + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, 0, + nullptr, nullptr, nullptr, TRACE_EVENT_FLAG_NONE); } } } @@ -1729,6 +1742,7 @@ ScopedTraceBinaryEfficient::ScopedTraceBinaryEfficient( TRACE_EVENT_PHASE_COMPLETE, category_group_enabled_, name, + trace_event_internal::kGlobalScope, // scope trace_event_internal::kNoId, // id static_cast<int>(base::PlatformThread::CurrentId()), // thread_id base::TimeTicks::Now(), diff --git a/base/trace_event/trace_log.h b/base/trace_event/trace_log.h index a079f04..235b946 100644 --- a/base/trace_event/trace_log.h +++ b/base/trace_event/trace_log.h @@ -142,6 +142,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int num_args, const char* const arg_names[], @@ -188,6 +189,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int num_args, const char** arg_names, @@ -199,6 +201,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned long long bind_id, int num_args, @@ -211,6 +214,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int process_id, int num_args, @@ -223,6 +227,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, int thread_id, const TimeTicks& timestamp, @@ -236,6 +241,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { char phase, const unsigned char* category_group_enabled, const char* name, + const char* scope, unsigned long long id, unsigned long long bind_id, int thread_id, diff --git a/base/trace_event/trace_sampling_thread.cc b/base/trace_event/trace_sampling_thread.cc index ec4602c..a8d32d6 100644 --- a/base/trace_event/trace_sampling_thread.cc +++ b/base/trace_event/trace_sampling_thread.cc @@ -4,6 +4,7 @@ #include <stddef.h> +#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event_impl.h" #include "base/trace_event/trace_log.h" #include "base/trace_event/trace_sampling_thread.h" @@ -54,8 +55,9 @@ void TraceSamplingThread::DefaultSamplingCallback( ExtractCategoryAndName(combined, &category_group, &name); TRACE_EVENT_API_ADD_TRACE_EVENT( TRACE_EVENT_PHASE_SAMPLE, - TraceLog::GetCategoryGroupEnabled(category_group), name, 0, 0, NULL, NULL, - NULL, NULL, 0); + TraceLog::GetCategoryGroupEnabled(category_group), name, + trace_event_internal::kGlobalScope, trace_event_internal::kNoId, 0, + NULL, NULL, NULL, NULL, 0); } void TraceSamplingThread::GetSamples() { diff --git a/gin/v8_platform.cc b/gin/v8_platform.cc index cb49c78..26537bf 100644 --- a/gin/v8_platform.cc +++ b/gin/v8_platform.cc @@ -84,7 +84,8 @@ uint64_t V8Platform::AddTraceEvent(char phase, unsigned int flags) { base::trace_event::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_BIND_ID( - phase, category_enabled_flag, name, id, bind_id, num_args, arg_names, + phase, category_enabled_flag, name, + trace_event_internal::kGlobalScope, id, bind_id, num_args, arg_names, arg_types, (const long long unsigned int*)arg_values, NULL, flags); uint64_t result; memcpy(&result, &handle, sizeof(result)); diff --git a/ppapi/shared_impl/ppb_trace_event_impl.cc b/ppapi/shared_impl/ppb_trace_event_impl.cc index a178726..08bf7d0 100644 --- a/ppapi/shared_impl/ppb_trace_event_impl.cc +++ b/ppapi/shared_impl/ppb_trace_event_impl.cc @@ -45,7 +45,7 @@ void TraceEventImpl::AddTraceEvent(int8_t phase, phase, static_cast<const unsigned char*>(category_enabled), name, - id, + trace_event_internal::kGlobalScope, id, num_args, arg_names, arg_types, @@ -76,7 +76,7 @@ void TraceEventImpl::AddTraceEventWithThreadIdAndTimestamp( phase, static_cast<const unsigned char*>(category_enabled), name, - id, + trace_event_internal::kGlobalScope, id, trace_event_internal::kNoId, thread_id, base::TimeTicks::FromInternalValue(timestamp), diff --git a/skia/ext/event_tracer_impl.cc b/skia/ext/event_tracer_impl.cc index 55b704b..be92583 100644 --- a/skia/ext/event_tracer_impl.cc +++ b/skia/ext/event_tracer_impl.cc @@ -48,8 +48,9 @@ SkEventTracer::Handle const uint64_t* argValues, uint8_t flags) { base::trace_event::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT( - phase, categoryEnabledFlag, name, id, numArgs, argNames, argTypes, - (const long long unsigned int*)argValues, NULL, flags); + phase, categoryEnabledFlag, name, trace_event_internal::kGlobalScope, id, + numArgs, argNames, argTypes, (const long long unsigned int*)argValues, + NULL, flags); SkEventTracer::Handle result; memcpy(&result, &handle, sizeof(result)); return result; diff --git a/third_party/WebKit/Source/platform/EventTracer.cpp b/third_party/WebKit/Source/platform/EventTracer.cpp index c433fd5..75e6148 100644 --- a/third_party/WebKit/Source/platform/EventTracer.cpp +++ b/third_party/WebKit/Source/platform/EventTracer.cpp @@ -101,7 +101,7 @@ TraceEvent::TraceEventHandle EventTracer::addTraceEvent(char phase, const unsign const scoped_refptr<base::trace_event::ConvertableToTraceFormat>* convertables, unsigned flags) { base::TimeTicks timestampTimeTicks = base::TimeTicks() + base::TimeDelta::FromSecondsD(timestamp); - base::trace_event::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(phase, categoryEnabledFlag, name, id, bindId, base::PlatformThread::CurrentId(), timestampTimeTicks, numArgs, argNames, argTypes, argValues, convertables, flags); + base::trace_event::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(phase, categoryEnabledFlag, name, trace_event_internal::kGlobalScope, id, bindId, base::PlatformThread::CurrentId(), timestampTimeTicks, numArgs, argNames, argTypes, argValues, convertables, flags); TraceEvent::TraceEventHandle result; memcpy(&result, &handle, sizeof(result)); return result; diff --git a/third_party/libjingle/overrides/init_webrtc.cc b/third_party/libjingle/overrides/init_webrtc.cc index 8c1490de..33ebc88c 100644 --- a/third_party/libjingle/overrides/init_webrtc.cc +++ b/third_party/libjingle/overrides/init_webrtc.cc @@ -29,9 +29,9 @@ void AddTraceEvent(char phase, const unsigned char* arg_types, const unsigned long long* arg_values, unsigned char flags) { - TRACE_EVENT_API_ADD_TRACE_EVENT(phase, category_group_enabled, name, id, - num_args, arg_names, arg_types, arg_values, - NULL, flags); + TRACE_EVENT_API_ADD_TRACE_EVENT( + phase, category_group_enabled, name, trace_event_internal::kGlobalScope, + id, num_args, arg_names, arg_types, arg_values, NULL, flags); } namespace webrtc { diff --git a/ui/gl/angle_platform_impl.cc b/ui/gl/angle_platform_impl.cc index d87f761..84c6a3c 100644 --- a/ui/gl/angle_platform_impl.cc +++ b/ui/gl/angle_platform_impl.cc @@ -52,7 +52,8 @@ angle::Platform::TraceEventHandle ANGLEPlatformImpl::addTraceEvent( base::TimeTicks() + base::TimeDelta::FromSecondsD(timestamp); base::trace_event::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, trace_event_internal::kNoId, + phase, category_group_enabled, name, + trace_event_internal::kGlobalScope, id, trace_event_internal::kNoId, base::PlatformThread::CurrentId(), timestamp_tt, num_args, arg_names, arg_types, arg_values, nullptr, flags); angle::Platform::TraceEventHandle result; |