OLD | NEW |
---|---|
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" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
103 } | 103 } |
104 | 104 |
105 //////////////////////////////////////////////////////////////////////////////// | 105 //////////////////////////////////////////////////////////////////////////////// |
106 // | 106 // |
107 // TraceEvent | 107 // TraceEvent |
108 // | 108 // |
109 //////////////////////////////////////////////////////////////////////////////// | 109 //////////////////////////////////////////////////////////////////////////////// |
110 | 110 |
111 namespace { | 111 namespace { |
112 | 112 |
113 const char* GetPhaseStr(TraceEventPhase phase) { | |
114 switch(phase) { | |
115 case TRACE_EVENT_PHASE_BEGIN: | |
116 return "B"; | |
117 case TRACE_EVENT_PHASE_INSTANT: | |
118 return "I"; | |
119 case TRACE_EVENT_PHASE_END: | |
120 return "E"; | |
121 case TRACE_EVENT_PHASE_METADATA: | |
122 return "M"; | |
123 default: | |
124 NOTREACHED() << "Invalid phase argument"; | |
125 return "?"; | |
126 } | |
127 } | |
128 | |
129 size_t GetAllocLength(const char* str) { return str ? strlen(str) + 1 : 0; } | 113 size_t GetAllocLength(const char* str) { return str ? strlen(str) + 1 : 0; } |
130 | 114 |
131 // Copies |*member| into |*buffer|, sets |*member| to point to this new | 115 // Copies |*member| into |*buffer|, sets |*member| to point to this new |
132 // location, and then advances |*buffer| by the amount written. | 116 // location, and then advances |*buffer| by the amount written. |
133 void CopyTraceEventParameter(char** buffer, | 117 void CopyTraceEventParameter(char** buffer, |
134 const char** member, | 118 const char** member, |
135 const char* end) { | 119 const char* end) { |
136 if (*member) { | 120 if (*member) { |
137 size_t written = strlcpy(*buffer, *member, end - *buffer) + 1; | 121 size_t written = strlcpy(*buffer, *member, end - *buffer) + 1; |
138 DCHECK_LE(static_cast<int>(written), end - *buffer); | 122 DCHECK_LE(static_cast<int>(written), end - *buffer); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
205 CopyTraceEventParameter(&ptr, arg_values_[0].as_assignable_string(), end); | 189 CopyTraceEventParameter(&ptr, arg_values_[0].as_assignable_string(), end); |
206 if (arg2_is_copy) | 190 if (arg2_is_copy) |
207 CopyTraceEventParameter(&ptr, arg_values_[1].as_assignable_string(), end); | 191 CopyTraceEventParameter(&ptr, arg_values_[1].as_assignable_string(), end); |
208 DCHECK_EQ(end, ptr) << "Overrun by " << ptr - end; | 192 DCHECK_EQ(end, ptr) << "Overrun by " << ptr - end; |
209 } | 193 } |
210 } | 194 } |
211 | 195 |
212 TraceEvent::~TraceEvent() { | 196 TraceEvent::~TraceEvent() { |
213 } | 197 } |
214 | 198 |
199 const char* TraceEvent::GetPhaseStr(TraceEventPhase phase) { | |
200 switch(phase) { | |
201 case TRACE_EVENT_PHASE_BEGIN: | |
202 return "B"; | |
203 case TRACE_EVENT_PHASE_INSTANT: | |
204 return "I"; | |
205 case TRACE_EVENT_PHASE_END: | |
206 return "E"; | |
207 case TRACE_EVENT_PHASE_METADATA: | |
208 return "M"; | |
209 default: | |
210 NOTREACHED() << "Invalid phase argument"; | |
211 return "?"; | |
212 } | |
213 } | |
214 | |
215 TraceEventPhase TraceEvent::GetPhase(const char* phase) { | |
216 switch(*phase) { | |
217 case 'B': | |
218 return TRACE_EVENT_PHASE_BEGIN; | |
219 case 'I': | |
220 return TRACE_EVENT_PHASE_INSTANT; | |
221 case 'E': | |
222 return TRACE_EVENT_PHASE_END; | |
223 case 'M': | |
224 return TRACE_EVENT_PHASE_METADATA; | |
225 default: | |
226 return TRACE_EVENT_PHASE_METADATA; | |
nduca
2011/10/11 20:33:37
is this right? 'X'->metdata? X->UNKNOWN and DCHECK
jbates
2011/10/12 22:35:20
Done.
| |
227 } | |
228 } | |
229 | |
215 void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events, | 230 void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events, |
216 size_t start, | 231 size_t start, |
217 size_t count, | 232 size_t count, |
218 std::string* out) { | 233 std::string* out) { |
219 *out += "["; | 234 *out += "["; |
220 for (size_t i = 0; i < count && start + i < events.size(); ++i) { | 235 for (size_t i = 0; i < count && start + i < events.size(); ++i) { |
221 if (i > 0) | 236 if (i > 0) |
222 *out += ","; | 237 *out += ","; |
223 events[i + start].AppendAsJSON(out); | 238 events[i + start].AppendAsJSON(out); |
224 } | 239 } |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
593 NULL, 0, NULL, 0, | 608 NULL, 0, NULL, 0, |
594 p_data_->threshold_begin_id, p_data_->threshold, | 609 p_data_->threshold_begin_id, p_data_->threshold, |
595 TraceLog::EVENT_FLAG_NONE); | 610 TraceLog::EVENT_FLAG_NONE); |
596 } | 611 } |
597 } | 612 } |
598 | 613 |
599 } // namespace internal | 614 } // namespace internal |
600 | 615 |
601 } // namespace debug | 616 } // namespace debug |
602 } // namespace base | 617 } // namespace base |
OLD | NEW |