Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(300)

Side by Side Diff: base/debug/trace_event_win.cc

Issue 6551019: Trace_event upgrades (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More gooder js thanks to arv. Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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
5 #include "base/debug/trace_event_win.h" 4 #include "base/debug/trace_event_win.h"
6 5
7 #include "base/logging.h" 6 #include "base/logging.h"
8 #include "base/singleton.h" 7 #include "base/singleton.h"
9 #include <initguid.h> // NOLINT 8 #include <initguid.h> // NOLINT
10 9
11 namespace base { 10 namespace base {
12 namespace debug { 11 namespace debug {
13 12
14 using base::win::EtwEventType; 13 using base::win::EtwEventType;
15 using base::win::EtwMofEvent; 14 using base::win::EtwMofEvent;
16 15
17 // {3DADA31D-19EF-4dc1-B345-037927193422} 16 // {3DADA31D-19EF-4dc1-B345-037927193422}
18 const GUID kChromeTraceProviderName = { 17 const GUID kChromeTraceProviderName = {
19 0x3dada31d, 0x19ef, 0x4dc1, 0xb3, 0x45, 0x3, 0x79, 0x27, 0x19, 0x34, 0x22 }; 18 0x3dada31d, 0x19ef, 0x4dc1, 0xb3, 0x45, 0x3, 0x79, 0x27, 0x19, 0x34, 0x22 };
20 19
21 // {B967AE67-BB22-49d7-9406-55D91EE1D560} 20 // {B967AE67-BB22-49d7-9406-55D91EE1D560}
22 const GUID kTraceEventClass32 = { 21 const GUID kTraceEventClass32 = {
23 0xb967ae67, 0xbb22, 0x49d7, 0x94, 0x6, 0x55, 0xd9, 0x1e, 0xe1, 0xd5, 0x60 }; 22 0xb967ae67, 0xbb22, 0x49d7, 0x94, 0x6, 0x55, 0xd9, 0x1e, 0xe1, 0xd5, 0x60 };
24 23
25 // {97BE602D-2930-4ac3-8046-B6763B631DFE} 24 // {97BE602D-2930-4ac3-8046-B6763B631DFE}
26 const GUID kTraceEventClass64 = { 25 const GUID kTraceEventClass64 = {
27 0x97be602d, 0x2930, 0x4ac3, 0x80, 0x46, 0xb6, 0x76, 0x3b, 0x63, 0x1d, 0xfe}; 26 0x97be602d, 0x2930, 0x4ac3, 0x80, 0x46, 0xb6, 0x76, 0x3b, 0x63, 0x1d, 0xfe};
28 27
29 28
30 TraceLog::TraceLog() : EtwTraceProvider(kChromeTraceProviderName) { 29 TraceEventETWProvider::TraceEventETWProvider() :
30 EtwTraceProvider(kChromeTraceProviderName) {
31 Register(); 31 Register();
32 } 32 }
33 33
34 TraceLog* TraceLog::GetInstance() { 34 TraceEventETWProvider* TraceEventETWProvider::GetInstance() {
35 return Singleton<TraceLog, StaticMemorySingletonTraits<TraceLog> >::get(); 35 return Singleton<TraceEventETWProvider,
36 StaticMemorySingletonTraits<TraceEventETWProvider> >::get();
36 } 37 }
37 38
38 bool TraceLog::StartTracing() { 39 bool TraceEventETWProvider::StartTracing() {
39 return true; 40 return true;
40 } 41 }
41 42
42 void TraceLog::TraceEvent(const char* name, 43 void TraceEventETWProvider::TraceEvent(const char* name,
43 size_t name_len, 44 size_t name_len,
44 EventType type, 45 TraceEventPhase type,
45 const void* id, 46 const void* id,
46 const char* extra, 47 const char* extra,
47 size_t extra_len) { 48 size_t extra_len) {
48 // Make sure we don't touch NULL. 49 // Make sure we don't touch NULL.
49 if (name == NULL) 50 if (name == NULL)
50 name = ""; 51 name = "";
51 if (extra == NULL) 52 if (extra == NULL)
52 extra = ""; 53 extra = "";
53 54
54 EtwEventType etw_type = 0; 55 EtwEventType etw_type = 0;
55 switch (type) { 56 switch (type) {
56 case TraceLog::EVENT_BEGIN: 57 case TRACE_EVENT_PHASE_BEGIN:
57 etw_type = kTraceEventTypeBegin; 58 etw_type = kTraceEventTypeBegin;
58 break; 59 break;
59 case TraceLog::EVENT_END: 60 case TRACE_EVENT_PHASE_END:
60 etw_type = kTraceEventTypeEnd; 61 etw_type = kTraceEventTypeEnd;
61 break; 62 break;
62 63
63 case TraceLog::EVENT_INSTANT: 64 case TRACE_EVENT_PHASE_INSTANT:
64 etw_type = kTraceEventTypeInstant; 65 etw_type = kTraceEventTypeInstant;
65 break; 66 break;
66 67
67 default: 68 default:
68 NOTREACHED() << "Unknown event type"; 69 NOTREACHED() << "Unknown event type";
69 etw_type = kTraceEventTypeInstant; 70 etw_type = kTraceEventTypeInstant;
70 break; 71 break;
71 } 72 }
72 73
73 EtwMofEvent<5> event(kTraceEventClass32, 74 EtwMofEvent<5> event(kTraceEventClass32,
(...skipping 12 matching lines...) Expand all
86 backtrace, 87 backtrace,
87 &hash); 88 &hash);
88 event.SetField(3, sizeof(depth), &depth); 89 event.SetField(3, sizeof(depth), &depth);
89 event.SetField(4, sizeof(backtrace[0]) * depth, backtrace); 90 event.SetField(4, sizeof(backtrace[0]) * depth, backtrace);
90 } 91 }
91 92
92 // Trace the event. 93 // Trace the event.
93 Log(event.get()); 94 Log(event.get());
94 } 95 }
95 96
96 void TraceLog::Trace(const char* name, 97 void TraceEventETWProvider::Trace(const char* name,
97 size_t name_len, 98 size_t name_len,
98 EventType type, 99 TraceEventPhase type,
99 const void* id, 100 const void* id,
100 const char* extra, 101 const char* extra,
101 size_t extra_len) { 102 size_t extra_len) {
102 TraceLog* provider = TraceLog::GetInstance(); 103 TraceEventETWProvider* provider = TraceEventETWProvider::GetInstance();
103 if (provider && provider->IsTracing()) { 104 if (provider && provider->IsTracing()) {
104 // Compute the name & extra lengths if not supplied already. 105 // Compute the name & extra lengths if not supplied already.
105 if (name_len == -1) 106 if (name_len == -1)
106 name_len = (name == NULL) ? 0 : strlen(name); 107 name_len = (name == NULL) ? 0 : strlen(name);
107 if (extra_len == -1) 108 if (extra_len == -1)
108 extra_len = (extra == NULL) ? 0 : strlen(extra); 109 extra_len = (extra == NULL) ? 0 : strlen(extra);
109 110
110 provider->TraceEvent(name, name_len, type, id, extra, extra_len); 111 provider->TraceEvent(name, name_len, type, id, extra, extra_len);
111 } 112 }
112 } 113 }
113 114
114 void TraceLog::Resurrect() { 115 void TraceEventETWProvider::Resurrect() {
115 StaticMemorySingletonTraits<TraceLog>::Resurrect(); 116 StaticMemorySingletonTraits<TraceEventETWProvider>::Resurrect();
116 } 117 }
117 118
118 } // namespace debug 119 } // namespace debug
119 } // namespace base 120 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698