| 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 // Trace events are for tracking application performance. | 5 // Trace events are for tracking application performance. |
| 6 // | 6 // |
| 7 // Events are issued against categories. Whereas LOG's | 7 // Events are issued against categories. Whereas LOG's |
| 8 // categories are statically defined, TRACE categories are created | 8 // categories are statically defined, TRACE categories are created |
| 9 // implicitly with a string. For example: | 9 // implicitly with a string. For example: |
| 10 // TRACE_EVENT_INSTANT0("MY_SUBSYSTEM", "SomeImportantEvent") | 10 // TRACE_EVENT_INSTANT0("MY_SUBSYSTEM", "SomeImportantEvent") |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 // - category and name strings must have application lifetime (statics or | 134 // - category and name strings must have application lifetime (statics or |
| 135 // literals). They may not include " chars. | 135 // literals). They may not include " chars. |
| 136 #define TRACE_EVENT0(category, name) \ | 136 #define TRACE_EVENT0(category, name) \ |
| 137 TRACE_EVENT1(category, name, NULL, 0) | 137 TRACE_EVENT1(category, name, NULL, 0) |
| 138 #define TRACE_EVENT1(category, name, arg1_name, arg1_val) \ | 138 #define TRACE_EVENT1(category, name, arg1_name, arg1_val) \ |
| 139 TRACE_EVENT2(category, name, arg1_name, arg1_val, NULL, 0) | 139 TRACE_EVENT2(category, name, arg1_name, arg1_val, NULL, 0) |
| 140 #define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, arg2_val) \ | 140 #define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, arg2_val) \ |
| 141 INTERNAL_TRACE_EVENT_ADD_SCOPED( \ | 141 INTERNAL_TRACE_EVENT_ADD_SCOPED( \ |
| 142 category, name, arg1_name, arg1_val, arg2_name, arg2_val) | 142 category, name, arg1_name, arg1_val, arg2_name, arg2_val) |
| 143 | 143 |
| 144 // Same as TRACE_EVENT except that they are not included in official builds. |
| 145 #ifdef OFFICIAL_BUILD |
| 146 #define UNSHIPPED_TRACE_EVENT0(category, name) (void)0 |
| 147 #define UNSHIPPED_TRACE_EVENT1(category, name, arg1_name, arg1_val) (void)0 |
| 148 #define UNSHIPPED_TRACE_EVENT2(category, name, arg1_name, arg1_val, \ |
| 149 arg2_name, arg2_val) (void)0 |
| 150 #else |
| 151 #define UNSHIPPED_TRACE_EVENT0(category, name) \ |
| 152 TRACE_EVENT0(category, name) |
| 153 #define UNSHIPPED_TRACE_EVENT1(category, name, arg1_name, arg1_val) \ |
| 154 TRACE_EVENT1(category, name, arg1_name, arg1_val) |
| 155 #define UNSHIPPED_TRACE_EVENT2(category, name, arg1_name, arg1_val, \ |
| 156 arg2_name, arg2_val) \ |
| 157 TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, arg2_val) |
| 158 #endif |
| 159 |
| 144 // Records a single event called "name" immediately, with 0, 1 or 2 | 160 // Records a single event called "name" immediately, with 0, 1 or 2 |
| 145 // associated arguments. If the category is not enabled, then this | 161 // associated arguments. If the category is not enabled, then this |
| 146 // does nothing. | 162 // does nothing. |
| 147 // - category and name strings must have application lifetime (statics or | 163 // - category and name strings must have application lifetime (statics or |
| 148 // literals). They may not include " chars. | 164 // literals). They may not include " chars. |
| 149 #define TRACE_EVENT_INSTANT0(category, name) \ | 165 #define TRACE_EVENT_INSTANT0(category, name) \ |
| 150 TRACE_EVENT_INSTANT1(category, name, NULL, 0) | 166 TRACE_EVENT_INSTANT1(category, name, NULL, 0) |
| 151 #define TRACE_EVENT_INSTANT1(category, name, arg1_name, arg1_val) \ | 167 #define TRACE_EVENT_INSTANT1(category, name, arg1_name, arg1_val) \ |
| 152 TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, NULL, 0) | 168 TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, NULL, 0) |
| 153 #define TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, \ | 169 #define TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, \ |
| (...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 const char* name, | 586 const char* name, |
| 571 const void* id, | 587 const void* id, |
| 572 const char* extra); | 588 const char* extra); |
| 573 static void AddTraceEventEtw(TraceEventPhase phase, | 589 static void AddTraceEventEtw(TraceEventPhase phase, |
| 574 const char* name, | 590 const char* name, |
| 575 const void* id, | 591 const void* id, |
| 576 const std::string& extra); | 592 const std::string& extra); |
| 577 | 593 |
| 578 // Exposed for unittesting: | 594 // Exposed for unittesting: |
| 579 | 595 |
| 596 // Allows deleting our singleton instance. |
| 597 static void DeleteForTesting(); |
| 598 |
| 580 // Allows resurrecting our singleton instance post-AtExit processing. | 599 // Allows resurrecting our singleton instance post-AtExit processing. |
| 581 static void Resurrect(); | 600 static void Resurrect(); |
| 582 | 601 |
| 583 // Allow tests to inspect TraceEvents. | 602 // Allow tests to inspect TraceEvents. |
| 584 size_t GetEventsSize() const { return logged_events_.size(); } | 603 size_t GetEventsSize() const { return logged_events_.size(); } |
| 585 const TraceEvent& GetEventAt(size_t index) const { | 604 const TraceEvent& GetEventAt(size_t index) const { |
| 586 DCHECK(index < logged_events_.size()); | 605 DCHECK(index < logged_events_.size()); |
| 587 return logged_events_[index]; | 606 return logged_events_[index]; |
| 588 } | 607 } |
| 589 | 608 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 Data* p_data_; | 698 Data* p_data_; |
| 680 Data data_; | 699 Data data_; |
| 681 }; | 700 }; |
| 682 | 701 |
| 683 } // namespace internal | 702 } // namespace internal |
| 684 | 703 |
| 685 } // namespace debug | 704 } // namespace debug |
| 686 } // namespace base | 705 } // namespace base |
| 687 | 706 |
| 688 #endif // BASE_DEBUG_TRACE_EVENT_H_ | 707 #endif // BASE_DEBUG_TRACE_EVENT_H_ |
| OLD | NEW |