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

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

Issue 17619005: Create top-level separate targets for browser and child dlls (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: android 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 | « no previous file | base/debug/trace_event_impl.cc » ('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 770 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 781
782 // Defines atomic operations used internally by the tracing system. 782 // Defines atomic operations used internally by the tracing system.
783 #define TRACE_EVENT_API_ATOMIC_WORD base::subtle::AtomicWord 783 #define TRACE_EVENT_API_ATOMIC_WORD base::subtle::AtomicWord
784 #define TRACE_EVENT_API_ATOMIC_LOAD(var) base::subtle::NoBarrier_Load(&(var)) 784 #define TRACE_EVENT_API_ATOMIC_LOAD(var) base::subtle::NoBarrier_Load(&(var))
785 #define TRACE_EVENT_API_ATOMIC_STORE(var, value) \ 785 #define TRACE_EVENT_API_ATOMIC_STORE(var, value) \
786 base::subtle::NoBarrier_Store(&(var), (value)) 786 base::subtle::NoBarrier_Store(&(var), (value))
787 787
788 // Defines visibility for classes in trace_event.h 788 // Defines visibility for classes in trace_event.h
789 #define TRACE_EVENT_API_CLASS_EXPORT BASE_EXPORT 789 #define TRACE_EVENT_API_CLASS_EXPORT BASE_EXPORT
790 790
791 // Not supported in split-dll build. http://crbug.com/256965
792 #if !defined(CHROME_SPLIT_DLL)
793 // The thread buckets for the sampling profiler. 791 // The thread buckets for the sampling profiler.
794 TRACE_EVENT_API_CLASS_EXPORT extern \ 792 TRACE_EVENT_API_CLASS_EXPORT extern \
795 TRACE_EVENT_API_ATOMIC_WORD g_trace_state[3]; 793 TRACE_EVENT_API_ATOMIC_WORD g_trace_state[3];
796 794
797 #define TRACE_EVENT_API_THREAD_BUCKET(thread_bucket) \ 795 #define TRACE_EVENT_API_THREAD_BUCKET(thread_bucket) \
798 g_trace_state[thread_bucket] 796 g_trace_state[thread_bucket]
799 797
800 #endif
801
802 //////////////////////////////////////////////////////////////////////////////// 798 ////////////////////////////////////////////////////////////////////////////////
803 799
804 // Implementation detail: trace event macros create temporary variables 800 // Implementation detail: trace event macros create temporary variables
805 // to keep instrumentation overhead low. These macros give each temporary 801 // to keep instrumentation overhead low. These macros give each temporary
806 // variable a unique name based on the line number to prevent name collissions. 802 // variable a unique name based on the line number to prevent name collissions.
807 #define INTERNAL_TRACE_EVENT_UID3(a,b) \ 803 #define INTERNAL_TRACE_EVENT_UID3(a,b) \
808 trace_event_unique_##a##b 804 trace_event_unique_##a##b
809 #define INTERNAL_TRACE_EVENT_UID2(a,b) \ 805 #define INTERNAL_TRACE_EVENT_UID2(a,b) \
810 INTERNAL_TRACE_EVENT_UID3(a,b) 806 INTERNAL_TRACE_EVENT_UID3(a,b)
811 #define INTERNAL_TRACE_EVENT_UID(name_prefix) \ 807 #define INTERNAL_TRACE_EVENT_UID(name_prefix) \
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after
1482 TraceEventSamplingStateScope(const char* category_and_name) { 1478 TraceEventSamplingStateScope(const char* category_and_name) {
1483 previous_state_ = TraceEventSamplingStateScope<BucketNumber>::Current(); 1479 previous_state_ = TraceEventSamplingStateScope<BucketNumber>::Current();
1484 TraceEventSamplingStateScope<BucketNumber>::Set(category_and_name); 1480 TraceEventSamplingStateScope<BucketNumber>::Set(category_and_name);
1485 } 1481 }
1486 1482
1487 ~TraceEventSamplingStateScope() { 1483 ~TraceEventSamplingStateScope() {
1488 TraceEventSamplingStateScope<BucketNumber>::Set(previous_state_); 1484 TraceEventSamplingStateScope<BucketNumber>::Set(previous_state_);
1489 } 1485 }
1490 1486
1491 static inline const char* Current() { 1487 static inline const char* Current() {
1492 // Not supported in split-dll build. http://crbug.com/256965
1493 #if !defined(CHROME_SPLIT_DLL)
1494 return reinterpret_cast<const char*>(TRACE_EVENT_API_ATOMIC_LOAD( 1488 return reinterpret_cast<const char*>(TRACE_EVENT_API_ATOMIC_LOAD(
1495 g_trace_state[BucketNumber])); 1489 g_trace_state[BucketNumber]));
1496 #else
1497 return NULL;
1498 #endif
1499 } 1490 }
1500 1491
1501 static inline void Set(const char* category_and_name) { 1492 static inline void Set(const char* category_and_name) {
1502 // Not supported in split-dll build. http://crbug.com/256965
1503 #if !defined(CHROME_SPLIT_DLL)
1504 TRACE_EVENT_API_ATOMIC_STORE( 1493 TRACE_EVENT_API_ATOMIC_STORE(
1505 g_trace_state[BucketNumber], 1494 g_trace_state[BucketNumber],
1506 reinterpret_cast<TRACE_EVENT_API_ATOMIC_WORD>( 1495 reinterpret_cast<TRACE_EVENT_API_ATOMIC_WORD>(
1507 const_cast<char*>(category_and_name))); 1496 const_cast<char*>(category_and_name)));
1508 #endif
1509 } 1497 }
1510 1498
1511 private: 1499 private:
1512 const char* previous_state_; 1500 const char* previous_state_;
1513 }; 1501 };
1514 1502
1515 } // namespace trace_event_internal 1503 } // namespace trace_event_internal
1516 1504
1517 namespace base { 1505 namespace base {
1518 namespace debug { 1506 namespace debug {
(...skipping 21 matching lines...) Expand all
1540 const char* name_; 1528 const char* name_;
1541 IDType id_; 1529 IDType id_;
1542 1530
1543 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject); 1531 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject);
1544 }; 1532 };
1545 1533
1546 } // namespace debug 1534 } // namespace debug
1547 } // namespace base 1535 } // namespace base
1548 1536
1549 #endif /* BASE_DEBUG_TRACE_EVENT_H_ */ 1537 #endif /* BASE_DEBUG_TRACE_EVENT_H_ */
OLDNEW
« no previous file with comments | « no previous file | base/debug/trace_event_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698