diff options
author | yuhaoz <yuhaoz@google.com> | 2015-06-11 13:39:40 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-11 20:40:09 +0000 |
commit | f4d421351e25929f371ad6b23376eb856b06765c (patch) | |
tree | 2cd09b634f4d9628ddaf870375969b694bec8897 | |
parent | 4a54191bda58dd18017efb87e3bab38389e46c0b (diff) | |
download | chromium_src-f4d421351e25929f371ad6b23376eb856b06765c.zip chromium_src-f4d421351e25929f371ad6b23376eb856b06765c.tar.gz chromium_src-f4d421351e25929f371ad6b23376eb856b06765c.tar.bz2 |
Allow binding point to be specified on flow end events.
Review URL: https://codereview.chromium.org/1177853004
Cr-Commit-Position: refs/heads/master@{#334031}
-rw-r--r-- | base/trace_event/trace_event.h | 4 | ||||
-rw-r--r-- | base/trace_event/trace_event_impl.cc | 3 | ||||
-rw-r--r-- | base/trace_event/trace_event_unittest.cc | 19 | ||||
-rw-r--r-- | ui/events/latency_info.cc | 2 |
4 files changed, 27 insertions, 1 deletions
diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h index 397bafc..c41ca1e 100644 --- a/base/trace_event/trace_event.h +++ b/base/trace_event/trace_event.h @@ -852,6 +852,9 @@ #define TRACE_EVENT_FLOW_END0(category_group, name, id) \ INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FLOW_END, \ category_group, name, id, TRACE_EVENT_FLAG_NONE) +#define TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0(category_group, name, id) \ + INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FLOW_END, \ + category_group, name, id, TRACE_EVENT_FLAG_BIND_TO_ENCLOSING) #define TRACE_EVENT_FLOW_END1(category_group, name, id, arg1_name, arg1_val) \ INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FLOW_END, \ category_group, name, id, TRACE_EVENT_FLAG_NONE, arg1_name, arg1_val) @@ -1138,6 +1141,7 @@ TRACE_EVENT_API_CLASS_EXPORT extern \ #define TRACE_EVENT_FLAG_SCOPE_EXTRA (static_cast<unsigned char>(1 << 4)) #define TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP (static_cast<unsigned char>(1 << 5)) #define TRACE_EVENT_FLAG_ASYNC_TTS (static_cast<unsigned char>(1 << 6)) +#define TRACE_EVENT_FLAG_BIND_TO_ENCLOSING (static_cast<unsigned char>(1 << 7)) #define TRACE_EVENT_FLAG_SCOPE_MASK (static_cast<unsigned char>( \ TRACE_EVENT_FLAG_SCOPE_OFFSET | TRACE_EVENT_FLAG_SCOPE_EXTRA)) diff --git a/base/trace_event/trace_event_impl.cc b/base/trace_event/trace_event_impl.cc index 5a6b3e8..b5d4298 100644 --- a/base/trace_event/trace_event_impl.cc +++ b/base/trace_event/trace_event_impl.cc @@ -840,6 +840,9 @@ void TraceEvent::AppendAsJSON( if (flags_ & TRACE_EVENT_FLAG_HAS_ID) StringAppendF(out, ",\"id\":\"0x%" PRIx64 "\"", static_cast<uint64>(id_)); + if (flags_ & TRACE_EVENT_FLAG_BIND_TO_ENCLOSING) + StringAppendF(out, ",\"bp\":\"e\""); + // Instant events also output their scope. if (phase_ == TRACE_EVENT_PHASE_INSTANT) { char scope = '?'; diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc index 76f9eca..796c386 100644 --- a/base/trace_event/trace_event_unittest.cc +++ b/base/trace_event/trace_event_unittest.cc @@ -47,6 +47,8 @@ const int kAsyncId = 5; const char kAsyncIdStr[] = "0x5"; const int kAsyncId2 = 6; const char kAsyncId2Str[] = "0x6"; +const int kFlowId = 7; +const char kFlowIdStr[] = "0x7"; const char kRecordAllCategoryFilter[] = "*"; @@ -430,6 +432,12 @@ void TraceWithAllMacroVariants(WaitableEvent* task_complete_event) { "name1", "value1", "name2", "value2"); + TRACE_EVENT_FLOW_BEGIN0("all", "TRACE_EVENT_FLOW_BEGIN0 call", kFlowId); + TRACE_EVENT_FLOW_STEP0("all", "TRACE_EVENT_FLOW_STEP0 call", + kFlowId, "step1"); + TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0("all", + "TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0 call", kFlowId); + TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW0 call", kAsyncId, NULL); TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW1 call", kAsyncId, "value"); TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW0 call", kAsyncId, NULL); @@ -613,6 +621,17 @@ void ValidateAllTraceMacrosCreatedData(const ListValue& trace_parsed) { EXPECT_SUB_FIND_("name2"); EXPECT_SUB_FIND_("value2"); + EXPECT_FIND_("TRACE_EVENT_FLOW_BEGIN0 call"); + EXPECT_SUB_FIND_("id"); + EXPECT_SUB_FIND_(kFlowIdStr); + EXPECT_FIND_("TRACE_EVENT_FLOW_STEP0 call"); + EXPECT_SUB_FIND_("id"); + EXPECT_SUB_FIND_(kFlowIdStr); + EXPECT_SUB_FIND_("step1"); + EXPECT_FIND_("TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0 call"); + EXPECT_SUB_FIND_("id"); + EXPECT_SUB_FIND_(kFlowIdStr); + EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW0 call"); EXPECT_SUB_FIND_("id"); EXPECT_SUB_FIND_(kAsyncIdStr); diff --git a/ui/events/latency_info.cc b/ui/events/latency_info.cc index 54acb7f..bd233ae 100644 --- a/ui/events/latency_info.cc +++ b/ui/events/latency_info.cc @@ -338,7 +338,7 @@ void LatencyInfo::AddLatencyNumberWithTimestampImpl( "data", AsTraceableData(*this)); } - TRACE_EVENT_FLOW_END0( + TRACE_EVENT_FLOW_END_BIND_TO_ENCLOSING0( "input,benchmark", "LatencyInfo.Flow", TRACE_ID_DONT_MANGLE(trace_id)); } } |