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 cd8cf4aa90c46e7167682715b3a8f91618dfbd97..39ca25d03c1e8f89d9e823d600c1c27a75bdbd8a 100644 |
--- a/base/trace_event/trace_event_impl.cc |
+++ b/base/trace_event/trace_event_impl.cc |
@@ -407,13 +407,11 @@ void InitializeMetadataEvent(TraceEvent* trace_event, |
unsigned char arg_type; |
unsigned long long arg_value; |
::trace_event_internal::SetTraceValue(value, &arg_type, &arg_value); |
- trace_event->Initialize(thread_id, |
- TraceTicks(), ThreadTicks(), |
- TRACE_EVENT_PHASE_METADATA, |
- &g_category_group_enabled[g_category_metadata], |
- metadata_name, ::trace_event_internal::kNoEventId, |
- num_args, &arg_name, &arg_type, &arg_value, NULL, |
- TRACE_EVENT_FLAG_NONE); |
+ trace_event->Initialize( |
+ thread_id, TraceTicks(), ThreadTicks(), TRACE_EVENT_PHASE_METADATA, |
+ &g_category_group_enabled[g_category_metadata], metadata_name, |
+ ::trace_event_internal::kNoEventId, num_args, &arg_name, &arg_type, |
+ &arg_value, NULL, TRACE_EVENT_FLAG_NONE, trace_event_internal::kNoBindId); |
} |
class AutoThreadLocalBoolean { |
@@ -597,7 +595,8 @@ void TraceEvent::Initialize( |
const unsigned char* arg_types, |
const unsigned long long* arg_values, |
const scoped_refptr<ConvertableToTraceFormat>* convertable_values, |
- unsigned int flags) { |
+ unsigned int flags, |
+ unsigned long long bind_id) { |
dsinclair
2015/07/17 13:39:41
Move up below id.
|
timestamp_ = timestamp; |
thread_timestamp_ = thread_timestamp; |
duration_ = TimeDelta::FromInternalValue(-1); |
@@ -607,6 +606,7 @@ void TraceEvent::Initialize( |
thread_id_ = thread_id; |
phase_ = phase; |
flags_ = flags; |
+ bind_id_ = bind_id; |
// Clamp num_args since it may have been set by a third_party library. |
num_args = (num_args > kTraceMaxNumArgs) ? kTraceMaxNumArgs : num_args; |
@@ -848,6 +848,18 @@ void TraceEvent::AppendAsJSON( |
if (flags_ & TRACE_EVENT_FLAG_BIND_TO_ENCLOSING) |
StringAppendF(out, ",\"bp\":\"e\""); |
+ if (flags_ & TRACE_EVENT_FLAG_FLOW_OUT) { |
dsinclair
2015/07/17 13:39:40
I think this needs to be a bit more complicated. W
|
+ StringAppendF(out, ",\"bind_id\":\"0x%" PRIx64 "\"", |
+ static_cast<uint64>(bind_id_)); |
+ StringAppendF(out, ",\"dir\":\"o\""); |
+ } |
+ |
+ if (flags_ & TRACE_EVENT_FLAG_FLOW_IN) { |
+ StringAppendF(out, ",\"bind_id\":\"0x%" PRIx64 "\"", |
+ static_cast<uint64>(bind_id_)); |
+ StringAppendF(out, ",\"dir\":\"i\""); |
+ } |
+ |
// Instant events also output their scope. |
if (phase_ == TRACE_EVENT_PHASE_INSTANT) { |
char scope = '?'; |
@@ -1208,11 +1220,10 @@ void TraceLog::ThreadLocalEventBuffer::ReportOverhead( |
TraceEvent* trace_event = AddTraceEvent(NULL); |
if (trace_event) { |
trace_event->Initialize( |
- static_cast<int>(PlatformThread::CurrentId()), |
- event_timestamp, event_thread_timestamp, |
- TRACE_EVENT_PHASE_COMPLETE, |
+ static_cast<int>(PlatformThread::CurrentId()), event_timestamp, |
+ event_thread_timestamp, TRACE_EVENT_PHASE_COMPLETE, |
&g_category_group_enabled[g_category_trace_event_overhead], |
- "overhead", 0, 0, NULL, NULL, NULL, NULL, 0); |
+ "overhead", 0, 0, NULL, NULL, NULL, NULL, 0, 0); |
dsinclair
2015/07/17 13:39:41
If this 0 is id use the kNoId please.
|
trace_event->UpdateDuration(now, thread_now); |
} |
} |
@@ -2010,11 +2021,10 @@ TraceEventHandle TraceLog::AddTraceEvent( |
unsigned int flags) { |
int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
base::TraceTicks now = base::TraceTicks::Now(); |
- return AddTraceEventWithThreadIdAndTimestamp(phase, category_group_enabled, |
- name, id, thread_id, now, |
- num_args, arg_names, |
- arg_types, arg_values, |
- convertable_values, flags); |
+ return AddTraceEventWithThreadIdAndTimestamp( |
+ phase, category_group_enabled, name, id, thread_id, now, num_args, |
+ arg_names, arg_types, arg_values, convertable_values, flags, |
+ trace_event_internal::kNoBindId); |
} |
TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp( |
@@ -2029,7 +2039,8 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp( |
const unsigned char* arg_types, |
const unsigned long long* arg_values, |
const scoped_refptr<ConvertableToTraceFormat>* convertable_values, |
- unsigned int flags) { |
+ unsigned int flags, |
+ unsigned long long bind_id) { |
dsinclair
2015/07/17 13:39:41
Move up below thread_id
|
TraceEventHandle handle = { 0, 0, 0 }; |
if (!*category_group_enabled) |
return handle; |
@@ -2121,9 +2132,9 @@ TraceEventHandle TraceLog::AddTraceEventWithThreadIdAndTimestamp( |
if (trace_event) { |
trace_event->Initialize(thread_id, offset_event_timestamp, thread_now, |
- phase, category_group_enabled, name, id, |
- num_args, arg_names, arg_types, arg_values, |
- convertable_values, flags); |
+ phase, category_group_enabled, name, id, num_args, |
+ arg_names, arg_types, arg_values, |
+ convertable_values, flags, bind_id); |
#if defined(OS_ANDROID) |
trace_event->SendToATrace(); |
@@ -2515,7 +2526,7 @@ ScopedTraceBinaryEfficient::ScopedTraceBinaryEfficient( |
trace_event_internal::kNoEventId, |
static_cast<int>(base::PlatformThread::CurrentId()), |
base::TraceTicks::Now(), 0, NULL, NULL, NULL, NULL, |
- TRACE_EVENT_FLAG_NONE); |
+ TRACE_EVENT_FLAG_NONE, 0); |
dsinclair
2015/07/17 13:39:40
Use kNoId.
|
} |
} |