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

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

Issue 8413063: Revert 107813 - add classes trace_analyzer::Query and TraceAnalyzer to make it easy to search thr... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 1 month 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
« no previous file with comments | « base/debug/trace_event.h ('k') | base/test/trace_event_analyzer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include <algorithm> 7 #include <algorithm>
8 8
9 #if defined(OS_WIN) 9 #if defined(OS_WIN)
10 #include "base/debug/trace_event_win.h" 10 #include "base/debug/trace_event_win.h"
11 #endif 11 #endif
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/format_macros.h" 13 #include "base/format_macros.h"
14 #include "base/memory/ref_counted_memory.h"
14 #include "base/process_util.h" 15 #include "base/process_util.h"
15 #include "base/stringprintf.h" 16 #include "base/stringprintf.h"
16 #include "base/threading/thread_local.h" 17 #include "base/threading/thread_local.h"
17 #include "base/utf_string_conversions.h" 18 #include "base/utf_string_conversions.h"
18 #include "base/stl_util.h" 19 #include "base/stl_util.h"
19 #include "base/time.h" 20 #include "base/time.h"
20 21
21 #define USE_UNRELIABLE_NOW 22 #define USE_UNRELIABLE_NOW
22 23
23 class DeleteTraceLogForTesting { 24 class DeleteTraceLogForTesting {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 } 112 }
112 113
113 //////////////////////////////////////////////////////////////////////////////// 114 ////////////////////////////////////////////////////////////////////////////////
114 // 115 //
115 // TraceEvent 116 // TraceEvent
116 // 117 //
117 //////////////////////////////////////////////////////////////////////////////// 118 ////////////////////////////////////////////////////////////////////////////////
118 119
119 namespace { 120 namespace {
120 121
122 const char* GetPhaseStr(TraceEventPhase phase) {
123 switch(phase) {
124 case TRACE_EVENT_PHASE_BEGIN:
125 return "B";
126 case TRACE_EVENT_PHASE_INSTANT:
127 return "I";
128 case TRACE_EVENT_PHASE_END:
129 return "E";
130 case TRACE_EVENT_PHASE_METADATA:
131 return "M";
132 default:
133 NOTREACHED() << "Invalid phase argument";
134 return "?";
135 }
136 }
137
121 size_t GetAllocLength(const char* str) { return str ? strlen(str) + 1 : 0; } 138 size_t GetAllocLength(const char* str) { return str ? strlen(str) + 1 : 0; }
122 139
123 // Copies |*member| into |*buffer|, sets |*member| to point to this new 140 // Copies |*member| into |*buffer|, sets |*member| to point to this new
124 // location, and then advances |*buffer| by the amount written. 141 // location, and then advances |*buffer| by the amount written.
125 void CopyTraceEventParameter(char** buffer, 142 void CopyTraceEventParameter(char** buffer,
126 const char** member, 143 const char** member,
127 const char* end) { 144 const char* end) {
128 if (*member) { 145 if (*member) {
129 size_t written = strlcpy(*buffer, *member, end - *buffer) + 1; 146 size_t written = strlcpy(*buffer, *member, end - *buffer) + 1;
130 DCHECK_LE(static_cast<int>(written), end - *buffer); 147 DCHECK_LE(static_cast<int>(written), end - *buffer);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 CopyTraceEventParameter(&ptr, arg_values_[0].as_assignable_string(), end); 214 CopyTraceEventParameter(&ptr, arg_values_[0].as_assignable_string(), end);
198 if (arg2_is_copy) 215 if (arg2_is_copy)
199 CopyTraceEventParameter(&ptr, arg_values_[1].as_assignable_string(), end); 216 CopyTraceEventParameter(&ptr, arg_values_[1].as_assignable_string(), end);
200 DCHECK_EQ(end, ptr) << "Overrun by " << ptr - end; 217 DCHECK_EQ(end, ptr) << "Overrun by " << ptr - end;
201 } 218 }
202 } 219 }
203 220
204 TraceEvent::~TraceEvent() { 221 TraceEvent::~TraceEvent() {
205 } 222 }
206 223
207 const char* TraceEvent::GetPhaseString(TraceEventPhase phase) {
208 switch(phase) {
209 case TRACE_EVENT_PHASE_BEGIN:
210 return "B";
211 case TRACE_EVENT_PHASE_INSTANT:
212 return "I";
213 case TRACE_EVENT_PHASE_END:
214 return "E";
215 case TRACE_EVENT_PHASE_METADATA:
216 return "M";
217 default:
218 NOTREACHED() << "Invalid phase argument";
219 return "?";
220 }
221 }
222
223 TraceEventPhase TraceEvent::GetPhase(const char* phase) {
224 switch(*phase) {
225 case 'B':
226 return TRACE_EVENT_PHASE_BEGIN;
227 case 'I':
228 return TRACE_EVENT_PHASE_INSTANT;
229 case 'E':
230 return TRACE_EVENT_PHASE_END;
231 case 'M':
232 return TRACE_EVENT_PHASE_METADATA;
233 default:
234 NOTREACHED() << "Invalid phase name";
235 return TRACE_EVENT_PHASE_METADATA;
236 }
237 }
238
239 void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events, 224 void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events,
240 size_t start, 225 size_t start,
241 size_t count, 226 size_t count,
242 std::string* out) { 227 std::string* out) {
243 for (size_t i = 0; i < count && start + i < events.size(); ++i) { 228 for (size_t i = 0; i < count && start + i < events.size(); ++i) {
244 if (i > 0) 229 if (i > 0)
245 *out += ","; 230 *out += ",";
246 events[i + start].AppendAsJSON(out); 231 events[i + start].AppendAsJSON(out);
247 } 232 }
248 } 233 }
249 234
250 void TraceEvent::AppendAsJSON(std::string* out) const { 235 void TraceEvent::AppendAsJSON(std::string* out) const {
251 const char* phase_str = GetPhaseString(phase_); 236 const char* phase_str = GetPhaseStr(phase_);
252 int64 time_int64 = timestamp_.ToInternalValue(); 237 int64 time_int64 = timestamp_.ToInternalValue();
253 // Category name checked at category creation time. 238 // Category name checked at category creation time.
254 DCHECK(!strchr(name_, '"')); 239 DCHECK(!strchr(name_, '"'));
255 StringAppendF(out, 240 StringAppendF(out,
256 "{\"cat\":\"%s\",\"pid\":%i,\"tid\":%i,\"ts\":%lld," 241 "{\"cat\":\"%s\",\"pid\":%i,\"tid\":%i,\"ts\":%lld,"
257 "\"ph\":\"%s\",\"name\":\"%s\",\"args\":{", 242 "\"ph\":\"%s\",\"name\":\"%s\",\"args\":{",
258 category_->name, 243 category_->name,
259 static_cast<int>(process_id_), 244 static_cast<int>(process_id_),
260 static_cast<int>(thread_id_), 245 static_cast<int>(thread_id_),
261 static_cast<long long>(time_int64), 246 static_cast<long long>(time_int64),
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 NULL, 0, NULL, 0, 651 NULL, 0, NULL, 0,
667 p_data_->threshold_begin_id, p_data_->threshold, 652 p_data_->threshold_begin_id, p_data_->threshold,
668 TraceLog::EVENT_FLAG_NONE); 653 TraceLog::EVENT_FLAG_NONE);
669 } 654 }
670 } 655 }
671 656
672 } // namespace internal 657 } // namespace internal
673 658
674 } // namespace debug 659 } // namespace debug
675 } // namespace base 660 } // namespace base
OLDNEW
« no previous file with comments | « base/debug/trace_event.h ('k') | base/test/trace_event_analyzer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698