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

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

Issue 15418002: Record Chrome trace events in tcmalloc heap profiles (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup forward declarations Created 7 years, 5 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
« no previous file with comments | « base/base.gypi ('k') | base/debug/trace_event_impl.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) 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 // This header file defines the set of trace_event macros without specifying 5 // This header file defines the set of trace_event macros without specifying
6 // how the events actually get collected and stored. If you need to expose trace 6 // how the events actually get collected and stored. If you need to expose trace
7 // events to some other universe, you can copy-and-paste this file as well as 7 // events to some other universe, you can copy-and-paste this file as well as
8 // trace_event.h, modifying the macros contained there as necessary for the 8 // trace_event.h, modifying the macros contained there as necessary for the
9 // target platform. The end result is that multiple libraries can funnel events 9 // target platform. The end result is that multiple libraries can funnel events
10 // through to a shared trace event collector. 10 // through to a shared trace event collector.
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 // trace points would carry a significant performance cost of aquiring a lock 186 // trace points would carry a significant performance cost of aquiring a lock
187 // and resolving the category. 187 // and resolving the category.
188 188
189 #ifndef BASE_DEBUG_TRACE_EVENT_H_ 189 #ifndef BASE_DEBUG_TRACE_EVENT_H_
190 #define BASE_DEBUG_TRACE_EVENT_H_ 190 #define BASE_DEBUG_TRACE_EVENT_H_
191 191
192 #include <string> 192 #include <string>
193 193
194 #include "base/atomicops.h" 194 #include "base/atomicops.h"
195 #include "base/debug/trace_event_impl.h" 195 #include "base/debug/trace_event_impl.h"
196 #include "base/debug/trace_event_memory.h"
196 #include "build/build_config.h" 197 #include "build/build_config.h"
197 198
198 // By default, const char* argument values are assumed to have long-lived scope 199 // By default, const char* argument values are assumed to have long-lived scope
199 // and will not be copied. Use this macro to force a const char* to be copied. 200 // and will not be copied. Use this macro to force a const char* to be copied.
200 #define TRACE_STR_COPY(str) \ 201 #define TRACE_STR_COPY(str) \
201 trace_event_internal::TraceStringWithCopy(str) 202 trace_event_internal::TraceStringWithCopy(str)
202 203
203 // This will mark the trace event as disabled by default. The user will need 204 // This will mark the trace event as disabled by default. The user will need
204 // to explicitly enable the event. 205 // to explicitly enable the event.
205 #define TRACE_DISABLED_BY_DEFAULT(name) "disabled-by-default-" name 206 #define TRACE_DISABLED_BY_DEFAULT(name) "disabled-by-default-" name
206 207
207 // By default, uint64 ID argument values are not mangled with the Process ID in 208 // By default, uint64 ID argument values are not mangled with the Process ID in
208 // TRACE_EVENT_ASYNC macros. Use this macro to force Process ID mangling. 209 // TRACE_EVENT_ASYNC macros. Use this macro to force Process ID mangling.
209 #define TRACE_ID_MANGLE(id) \ 210 #define TRACE_ID_MANGLE(id) \
210 trace_event_internal::TraceID::ForceMangle(id) 211 trace_event_internal::TraceID::ForceMangle(id)
211 212
212 // By default, pointers are mangled with the Process ID in TRACE_EVENT_ASYNC 213 // By default, pointers are mangled with the Process ID in TRACE_EVENT_ASYNC
213 // macros. Use this macro to prevent Process ID mangling. 214 // macros. Use this macro to prevent Process ID mangling.
214 #define TRACE_ID_DONT_MANGLE(id) \ 215 #define TRACE_ID_DONT_MANGLE(id) \
215 trace_event_internal::TraceID::DontMangle(id) 216 trace_event_internal::TraceID::DontMangle(id)
216 217
217 // Records a pair of begin and end events called "name" for the current 218 // Records a pair of begin and end events called "name" for the current
218 // scope, with 0, 1 or 2 associated arguments. If the category is not 219 // scope, with 0, 1 or 2 associated arguments. If the category is not
219 // enabled, then this does nothing. 220 // enabled, then this does nothing.
220 // - category and name strings must have application lifetime (statics or 221 // - category and name strings must have application lifetime (statics or
221 // literals). They may not include " chars. 222 // literals). They may not include " chars.
222 #define TRACE_EVENT0(category_group, name) \ 223 #define TRACE_EVENT0(category_group, name) \
224 INTERNAL_TRACE_MEMORY(category_group, name) \
223 INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name) 225 INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name)
224 #define TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \ 226 #define TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \
227 INTERNAL_TRACE_MEMORY(category_group, name) \
225 INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val) 228 INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val)
226 #define TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, \ 229 #define TRACE_EVENT2( \
227 arg2_val) \ 230 category_group, name, arg1_name, arg1_val, arg2_name, arg2_val) \
228 INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name, arg1_name, arg1_val, \ 231 INTERNAL_TRACE_MEMORY(category_group, name) \
229 arg2_name, arg2_val) 232 INTERNAL_TRACE_EVENT_ADD_SCOPED( \
233 category_group, name, arg1_name, arg1_val, arg2_name, arg2_val)
230 234
231 // UNSHIPPED_TRACE_EVENT* are like TRACE_EVENT* except that they are not 235 // UNSHIPPED_TRACE_EVENT* are like TRACE_EVENT* except that they are not
232 // included in official builds. 236 // included in official builds.
233 237
234 #if OFFICIAL_BUILD 238 #if OFFICIAL_BUILD
235 #undef TRACING_IS_OFFICIAL_BUILD 239 #undef TRACING_IS_OFFICIAL_BUILD
236 #define TRACING_IS_OFFICIAL_BUILD 1 240 #define TRACING_IS_OFFICIAL_BUILD 1
237 #elif !defined(TRACING_IS_OFFICIAL_BUILD) 241 #elif !defined(TRACING_IS_OFFICIAL_BUILD)
238 #define TRACING_IS_OFFICIAL_BUILD 0 242 #define TRACING_IS_OFFICIAL_BUILD 0
jar (doing other things) 2013/07/13 00:51:08 I wish I could find a standard style.... but I cou
James Cook 2013/07/15 16:58:27 Could we resolve the issue about official build ma
jar (doing other things) 2013/07/16 22:54:48 Please switch to one of these alternatives in all
239 #endif 243 #endif
240 244
241 #if TRACING_IS_OFFICIAL_BUILD 245 #if TRACING_IS_OFFICIAL_BUILD
242 #define UNSHIPPED_TRACE_EVENT0(category_group, name) (void)0 246 #define UNSHIPPED_TRACE_EVENT0(category_group, name) (void)0
243 #define UNSHIPPED_TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \ 247 #define UNSHIPPED_TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \
244 (void)0 248 (void)0
245 #define UNSHIPPED_TRACE_EVENT2(category_group, name, arg1_name, arg1_val, \ 249 #define UNSHIPPED_TRACE_EVENT2(category_group, name, arg1_name, arg1_val, \
246 arg2_name, arg2_val) (void)0 250 arg2_name, arg2_val) (void)0
247 #define UNSHIPPED_TRACE_EVENT_INSTANT0(category_group, name, scope) (void)0 251 #define UNSHIPPED_TRACE_EVENT_INSTANT0(category_group, name, scope) (void)0
248 #define UNSHIPPED_TRACE_EVENT_INSTANT1(category_group, name, scope, \ 252 #define UNSHIPPED_TRACE_EVENT_INSTANT1(category_group, name, scope, \
(...skipping 1291 matching lines...) Expand 10 before | Expand all | Expand 10 after
1540 const char* name_; 1544 const char* name_;
1541 IDType id_; 1545 IDType id_;
1542 1546
1543 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject); 1547 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject);
1544 }; 1548 };
1545 1549
1546 } // namespace debug 1550 } // namespace debug
1547 } // namespace base 1551 } // namespace base
1548 1552
1549 #endif /* BASE_DEBUG_TRACE_EVENT_H_ */ 1553 #endif /* BASE_DEBUG_TRACE_EVENT_H_ */
OLDNEW
« no previous file with comments | « base/base.gypi ('k') | base/debug/trace_event_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698