OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/debug/trace_event.h" | 5 #include "base/debug/trace_event.h" |
6 | 6 |
7 namespace trace_event_internal { | 7 namespace trace_event_internal { |
8 | 8 |
9 void TraceEndOnScopeClose::Initialize(const unsigned char* category_enabled, | 9 void TraceEndOnScopeClose::Initialize(const unsigned char* category_enabled, |
10 const char* name) { | 10 const char* name) { |
11 data_.category_enabled = category_enabled; | 11 data_.category_enabled = category_enabled; |
12 data_.name = name; | 12 data_.name = name; |
13 p_data_ = &data_; | 13 p_data_ = &data_; |
14 } | 14 } |
15 | 15 |
16 void TraceEndOnScopeClose::AddEventIfEnabled() { | 16 void TraceEndOnScopeClose::AddEventIfEnabled() { |
17 // Only called when p_data_ is non-null. | 17 // Only called when p_data_ is non-null. |
18 if (*p_data_->category_enabled) { | 18 if (*p_data_->category_enabled) { |
| 19 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| 20 base::TimeTicks now = base::TimeTicks::NowFromSystemTraceTime() - |
| 21 base::debug::TraceLog::GetInstance()->GetTimeOffset(); |
19 TRACE_EVENT_API_ADD_TRACE_EVENT( | 22 TRACE_EVENT_API_ADD_TRACE_EVENT( |
20 TRACE_EVENT_PHASE_END, | 23 TRACE_EVENT_PHASE_END, |
21 p_data_->category_enabled, | 24 p_data_->category_enabled, |
22 p_data_->name, kNoEventId, | 25 p_data_->name, kNoEventId, thread_id, now.ToInternalValue(), |
23 kZeroNumArgs, NULL, NULL, NULL, | 26 kZeroNumArgs, NULL, NULL, NULL, |
24 TRACE_EVENT_FLAG_NONE); | 27 TRACE_EVENT_FLAG_NONE); |
25 } | 28 } |
26 } | 29 } |
27 | 30 |
28 } // namespace trace_event_internal | 31 } // namespace trace_event_internal |
OLD | NEW |