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 a2fb97c9932c3b0df7d8ff7db2eb29f1d7286c9e..80b3fe4427b89c30c43335748628ef4ffdb0962e 100644 |
| --- a/base/trace_event/trace_event.h |
| +++ b/base/trace_event/trace_event.h |
| @@ -225,14 +225,29 @@ |
| #define TRACE_EVENT0(category_group, name) \ |
| INTERNAL_TRACE_MEMORY(category_group, name) \ |
| INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name) |
| +#define TRACE_EVENT_WITH_FLOW0(category_group, name, bind_id, flow_direction) \ |
| + INTERNAL_TRACE_MEMORY(category_group, name) \ |
| + INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(category_group, name, bind_id, \ |
| + flow_direction) |
|
beaudoin
2015/07/27 18:34:13
s/flow_direction/flow_flags ? Since it includes pr
|
| #define TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \ |
| INTERNAL_TRACE_MEMORY(category_group, name) \ |
| INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val) |
| +#define TRACE_EVENT_WITH_FLOW1(category_group, name, bind_id, flow_direction, \ |
| + arg1_name, arg1_val) \ |
| + INTERNAL_TRACE_MEMORY(category_group, name) \ |
| + INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW( \ |
| + category_group, name, bind_id, flow_direction, arg1_name, arg1_val) |
| #define TRACE_EVENT2( \ |
| category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) \ |
| INTERNAL_TRACE_MEMORY(category_group, name) \ |
| INTERNAL_TRACE_EVENT_ADD_SCOPED( \ |
| category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) |
| +#define TRACE_EVENT_WITH_FLOW2(category_group, name, bind_id, flow_direction, \ |
| + arg1_name, arg1_val, arg2_name, arg2_val) \ |
| + INTERNAL_TRACE_MEMORY(category_group, name) \ |
| + INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(category_group, name, bind_id, \ |
| + flow_direction, 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. |
| @@ -242,6 +257,15 @@ |
| INTERNAL_TRACE_EVENT_ADD_SCOPED( \ |
| category, name, arg1_name, arg1_val, arg2_name, arg2_val) |
| +#define TRACE_EVENT_WITH_MEMORY_TAG_WITH_FLOW2(category, name, memory_tag, \ |
| + bind_id, flow_direction, \ |
| + arg1_name, arg1_val, arg2_name, \ |
| + arg2_val) \ |
| + INTERNAL_TRACE_MEMORY(category, memory_tag) \ |
| + INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(category, name, bind_id, \ |
| + flow_direction, arg1_name, \ |
| + arg1_val, arg2_name, arg2_val) |
| + |
| // UNSHIPPED_TRACE_EVENT* are like TRACE_EVENT* except that they are not |
| // included in official builds. |
| @@ -535,23 +559,23 @@ |
| value2_name, static_cast<int>(value2_val)) |
| // TRACE_EVENT_SAMPLE_* events are injected by the sampling profiler. |
| -#define TRACE_EVENT_SAMPLE_WITH_TID_AND_TIMESTAMP0(category_group, name, \ |
| - thread_id, timestamp) \ |
| - INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ |
| +#define TRACE_EVENT_SAMPLE_WITH_TID_AND_TIMESTAMP0(category_group, name, \ |
| + thread_id, timestamp) \ |
| + INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ |
| TRACE_EVENT_PHASE_SAMPLE, category_group, name, 0, thread_id, timestamp, \ |
| TRACE_EVENT_FLAG_NONE) |
| -#define TRACE_EVENT_SAMPLE_WITH_TID_AND_TIMESTAMP1( \ |
| - category_group, name, thread_id, timestamp, arg1_name, arg1_val) \ |
| - INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ |
| +#define TRACE_EVENT_SAMPLE_WITH_TID_AND_TIMESTAMP1( \ |
| + category_group, name, thread_id, timestamp, arg1_name, arg1_val) \ |
| + INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ |
| TRACE_EVENT_PHASE_SAMPLE, category_group, name, 0, thread_id, timestamp, \ |
| TRACE_EVENT_FLAG_NONE, arg1_name, arg1_val) |
| -#define TRACE_EVENT_SAMPLE_WITH_TID_AND_TIMESTAMP2(category_group, name, \ |
| - thread_id, timestamp, \ |
| - arg1_name, arg1_val, \ |
| - arg2_name, arg2_val) \ |
| - INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ |
| +#define TRACE_EVENT_SAMPLE_WITH_TID_AND_TIMESTAMP2(category_group, name, \ |
| + thread_id, timestamp, \ |
| + arg1_name, arg1_val, \ |
| + arg2_name, arg2_val) \ |
| + INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ |
| TRACE_EVENT_PHASE_SAMPLE, category_group, name, 0, thread_id, timestamp, \ |
| TRACE_EVENT_FLAG_NONE, arg1_name, arg1_val, arg2_name, arg2_val) |
| @@ -1068,67 +1092,87 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ |
| // Implementation detail: internal macro to create static category and add |
| // event if the category is enabled. |
| #define INTERNAL_TRACE_EVENT_ADD(phase, category_group, name, flags, ...) \ |
| - do { \ |
| - INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| - 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, ##__VA_ARGS__); \ |
| - } \ |
| - } while (0) |
| + do { \ |
| + INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| + 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__); \ |
| + } \ |
| + } while (0) |
| // 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(category_group, name, ...) \ |
| - 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()) { \ |
| - base::trace_event::TraceEventHandle h = \ |
| - trace_event_internal::AddTraceEvent( \ |
| - TRACE_EVENT_PHASE_COMPLETE, \ |
| - INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ |
| - trace_event_internal::kNoId, TRACE_EVENT_FLAG_NONE, \ |
| - ##__VA_ARGS__); \ |
| - INTERNAL_TRACE_EVENT_UID(tracer).Initialize( \ |
| - INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, h); \ |
| - } |
| + 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()) { \ |
| + base::trace_event::TraceEventHandle h = \ |
| + 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__); \ |
| + INTERNAL_TRACE_EVENT_UID(tracer).Initialize( \ |
| + INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, h); \ |
| + } |
| + |
| +#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW( \ |
| + category_group, name, bind_id, flow_direction, ...) \ |
|
beaudoin
2015/07/27 18:34:13
s/flow_direction/flow_flags ? Since it includes pr
|
| + 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 int trace_event_flags = flow_direction; \ |
| + trace_event_internal::TraceID trace_event_bind_id(bind_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_internal::kNoId, trace_event_flags, \ |
| + trace_event_bind_id.data(), ##__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, \ |
| flags, ...) \ |
| - do { \ |
| - INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| - if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ |
| - unsigned int trace_event_flags = flags | TRACE_EVENT_FLAG_HAS_ID; \ |
| - trace_event_internal::TraceID trace_event_trace_id( \ |
| - 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, \ |
| - ##__VA_ARGS__); \ |
| - } \ |
| - } while (0) |
| + do { \ |
| + INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| + if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ |
| + unsigned int trace_event_flags = flags | TRACE_EVENT_FLAG_HAS_ID; \ |
| + trace_event_internal::TraceID trace_event_trace_id(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__); \ |
| + } \ |
| + } while (0) |
| // Implementation detail: internal macro to create static category and add |
| // event if the category is enabled. |
| -#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP(phase, \ |
| - category_group, name, id, thread_id, timestamp, flags, ...) \ |
| - do { \ |
| - INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| - if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ |
| - unsigned int trace_event_flags = flags | TRACE_EVENT_FLAG_HAS_ID; \ |
| - trace_event_internal::TraceID trace_event_trace_id( \ |
| - id, &trace_event_flags); \ |
| - trace_event_internal::AddTraceEventWithThreadIdAndTimestamp( \ |
| - phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), \ |
| - name, trace_event_trace_id.data(), trace_event_internal::kNoId, \ |
| - thread_id, base::TraceTicks::FromInternalValue(timestamp), \ |
| - trace_event_flags | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP, \ |
| - ##__VA_ARGS__); \ |
| - } \ |
| - } while (0) |
| +#define INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( \ |
| + phase, category_group, name, id, thread_id, timestamp, flags, ...) \ |
| + do { \ |
| + INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category_group); \ |
| + if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \ |
| + unsigned int trace_event_flags = flags | TRACE_EVENT_FLAG_HAS_ID; \ |
| + trace_event_internal::TraceID trace_event_trace_id(id, \ |
| + &trace_event_flags); \ |
| + trace_event_internal::AddTraceEventWithThreadIdAndTimestamp( \ |
| + phase, INTERNAL_TRACE_EVENT_UID(category_group_enabled), name, \ |
| + trace_event_trace_id.data(), thread_id, \ |
| + trace_event_internal::kNoId, \ |
| + base::TraceTicks::FromInternalValue(timestamp), \ |
| + trace_event_flags | TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP, \ |
| + trace_event_internal::kNoId, ##__VA_ARGS__); \ |
| + } \ |
| + } while (0) |
| // Notes regarding the following definitions: |
| // New values can be added and propagated to third party libraries, but existing |
| @@ -1168,7 +1212,10 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ |
| #define TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP (static_cast<unsigned int>(1 << 5)) |
| #define TRACE_EVENT_FLAG_ASYNC_TTS (static_cast<unsigned int>(1 << 6)) |
| #define TRACE_EVENT_FLAG_BIND_TO_ENCLOSING (static_cast<unsigned int>(1 << 7)) |
| -#define TRACE_EVENT_FLAG_HAS_CONTEXT_ID (static_cast<unsigned int>(1 << 10)) |
| +#define TRACE_EVENT_FLAG_FLOW_IN (static_cast<unsigned int>(1 << 8)) |
| +#define TRACE_EVENT_FLAG_FLOW_OUT (static_cast<unsigned int>(1 << 9)) |
| +#define TRACE_EVENT_FLAG_HAS_CONTEXT_ID (static_cast<unsigned int>(1 << 11)) |
| +#define TRACE_EVENT_FLAG_FLOW_OPTIONAL (static_cast<unsigned int>(1 << 12)) |
|
beaudoin
2015/07/27 18:34:13
Why not group the _FLOW_ flags together? Why chang
beaudoin
2015/07/29 18:55:43
Same question here: why change to 12?
|
| #define TRACE_EVENT_FLAG_SCOPE_MASK (static_cast<unsigned int>( \ |
| TRACE_EVENT_FLAG_SCOPE_OFFSET | TRACE_EVENT_FLAG_SCOPE_EXTRA)) |
| @@ -1413,17 +1460,18 @@ AddTraceEventWithThreadIdAndTimestamp( |
| int thread_id, |
| const base::TraceTicks& timestamp, |
| unsigned int flags, |
| + unsigned long long bind_id, |
| const char* arg1_name, |
| const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& |
| arg1_val) { |
| 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, context_id, thread_id, |
| + phase, category_group_enabled, name, id, context_id, bind_id, thread_id, |
| timestamp, num_args, &arg1_name, arg_types, NULL, &arg1_val, flags); |
| } |
| -template<class ARG1_TYPE> |
| +template <class ARG1_TYPE> |
| static inline base::trace_event::TraceEventHandle |
| AddTraceEventWithThreadIdAndTimestamp( |
| char phase, |
| @@ -1434,6 +1482,7 @@ AddTraceEventWithThreadIdAndTimestamp( |
| int thread_id, |
| const base::TraceTicks& timestamp, |
| unsigned int flags, |
| + unsigned long long bind_id, |
| const char* arg1_name, |
| const ARG1_TYPE& arg1_val, |
| const char* arg2_name, |
| @@ -1452,12 +1501,12 @@ AddTraceEventWithThreadIdAndTimestamp( |
| convertable_values[1] = arg2_val; |
| return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( |
| - phase, category_group_enabled, name, id, context_id, thread_id, |
| - timestamp, num_args, arg_names, arg_types, arg_values, |
| - convertable_values, flags); |
| + phase, category_group_enabled, name, id, context_id, bind_id, thread_id, |
| + timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, |
| + flags); |
| } |
| -template<class ARG2_TYPE> |
| +template <class ARG2_TYPE> |
| static inline base::trace_event::TraceEventHandle |
| AddTraceEventWithThreadIdAndTimestamp( |
| char phase, |
| @@ -1468,6 +1517,7 @@ AddTraceEventWithThreadIdAndTimestamp( |
| int thread_id, |
| const base::TraceTicks& timestamp, |
| unsigned int flags, |
| + unsigned long long bind_id, |
| const char* arg1_name, |
| const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& arg1_val, |
| const char* arg2_name, |
| @@ -1486,9 +1536,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, context_id, thread_id, |
| - timestamp, num_args, arg_names, arg_types, arg_values, |
| - convertable_values, flags); |
| + phase, category_group_enabled, name, id, context_id, bind_id, thread_id, |
| + timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, |
| + flags); |
| } |
| static inline base::trace_event::TraceEventHandle |
| @@ -1501,6 +1551,7 @@ AddTraceEventWithThreadIdAndTimestamp( |
| int thread_id, |
| const base::TraceTicks& timestamp, |
| unsigned int flags, |
| + unsigned long long bind_id, |
| const char* arg1_name, |
| const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& arg1_val, |
| const char* arg2_name, |
| @@ -1514,7 +1565,7 @@ 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, context_id, thread_id, |
| + phase, category_group_enabled, name, id, context_id, bind_id, thread_id, |
| timestamp, num_args, arg_names, arg_types, NULL, convertable_values, |
| flags); |
| } |
| @@ -1528,9 +1579,10 @@ AddTraceEventWithThreadIdAndTimestamp( |
| unsigned long long context_id, |
| int thread_id, |
| const base::TraceTicks& timestamp, |
| - unsigned int flags) { |
| + 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, context_id, thread_id, |
| + phase, category_group_enabled, name, id, context_id, bind_id, thread_id, |
| timestamp, kZeroNumArgs, NULL, NULL, NULL, NULL, flags); |
| } |
| @@ -1539,15 +1591,16 @@ static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| const unsigned char* category_group_enabled, |
| const char* name, |
| unsigned long long id, |
| - unsigned int flags) { |
| + unsigned int flags, |
| + unsigned long long bind_id) { |
| const int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| const base::TraceTicks now = base::TraceTicks::Now(); |
| return AddTraceEventWithThreadIdAndTimestamp(phase, category_group_enabled, |
| name, id, kNoId, thread_id, now, |
| - flags); |
| + flags, bind_id); |
| } |
| -template<class ARG1_TYPE> |
| +template <class ARG1_TYPE> |
| static inline base::trace_event::TraceEventHandle |
| AddTraceEventWithThreadIdAndTimestamp( |
| char phase, |
| @@ -1558,6 +1611,7 @@ AddTraceEventWithThreadIdAndTimestamp( |
| int thread_id, |
| const base::TraceTicks& timestamp, |
| unsigned int flags, |
| + unsigned long long bind_id, |
| const char* arg1_name, |
| const ARG1_TYPE& arg1_val) { |
| const int num_args = 1; |
| @@ -1565,27 +1619,29 @@ 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, context_id, thread_id, |
| + phase, category_group_enabled, name, id, context_id, bind_id, thread_id, |
| timestamp, num_args, &arg1_name, arg_types, arg_values, NULL, flags); |
| } |
| -template<class ARG1_TYPE> |
| +template <class ARG1_TYPE> |
| static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| char phase, |
| const unsigned char* category_group_enabled, |
| const char* name, |
| unsigned long long id, |
| unsigned int flags, |
| + unsigned long long bind_id, |
| const char* arg1_name, |
| const ARG1_TYPE& arg1_val) { |
| int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| base::TraceTicks now = base::TraceTicks::Now(); |
| return AddTraceEventWithThreadIdAndTimestamp(phase, category_group_enabled, |
| name, id, kNoId, thread_id, now, |
| - flags, arg1_name, arg1_val); |
| + bind_id, flags, |
| + arg1_name, arg1_val); |
| } |
| -template<class ARG1_TYPE, class ARG2_TYPE> |
| +template <class ARG1_TYPE, class ARG2_TYPE> |
| static inline base::trace_event::TraceEventHandle |
| AddTraceEventWithThreadIdAndTimestamp( |
| char phase, |
| @@ -1596,6 +1652,7 @@ AddTraceEventWithThreadIdAndTimestamp( |
| int thread_id, |
| const base::TraceTicks& timestamp, |
| unsigned int flags, |
| + unsigned long long bind_id, |
| const char* arg1_name, |
| const ARG1_TYPE& arg1_val, |
| const char* arg2_name, |
| @@ -1607,17 +1664,18 @@ 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, context_id, thread_id, |
| + phase, category_group_enabled, name, id, context_id, bind_id, thread_id, |
| timestamp, num_args, arg_names, arg_types, arg_values, NULL, flags); |
| } |
| -template<class ARG1_TYPE, class ARG2_TYPE> |
| +template <class ARG1_TYPE, class ARG2_TYPE> |
| static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| char phase, |
| const unsigned char* category_group_enabled, |
| const char* name, |
| unsigned long long id, |
| unsigned int flags, |
| + unsigned long long bind_id, |
| const char* arg1_name, |
| const ARG1_TYPE& arg1_val, |
| const char* arg2_name, |
| @@ -1626,7 +1684,8 @@ static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| base::TraceTicks now = base::TraceTicks::Now(); |
| return AddTraceEventWithThreadIdAndTimestamp(phase, category_group_enabled, |
| name, id, kNoId, thread_id, now, |
| - flags, arg1_name, arg1_val, |
| + flags, bind_id, |
| + arg1_name, arg1_val, |
| arg2_name, arg2_val); |
| } |