| OLD | NEW |
| 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 #include "base/debug/trace_event_impl.h" | 5 #include "base/debug/trace_event_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/debug/leak_annotations.h" | 10 #include "base/debug/leak_annotations.h" |
| (...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 829 return g_category_groups[category_index]; | 829 return g_category_groups[category_index]; |
| 830 } | 830 } |
| 831 | 831 |
| 832 void TraceLog::EnableIncludedCategoryGroup(int category_index) { | 832 void TraceLog::EnableIncludedCategoryGroup(int category_index) { |
| 833 bool is_enabled = category_filter_.IsCategoryGroupEnabled( | 833 bool is_enabled = category_filter_.IsCategoryGroupEnabled( |
| 834 g_category_groups[category_index]); | 834 g_category_groups[category_index]); |
| 835 SetCategoryGroupEnabled(category_index, is_enabled); | 835 SetCategoryGroupEnabled(category_index, is_enabled); |
| 836 } | 836 } |
| 837 | 837 |
| 838 void TraceLog::SetCategoryGroupEnabled(int category_index, bool is_enabled) { | 838 void TraceLog::SetCategoryGroupEnabled(int category_index, bool is_enabled) { |
| 839 g_category_group_enabled[category_index] = | 839 g_category_group_enabled[category_index] = is_enabled ? CATEGORY_ENABLED : 0; |
| 840 is_enabled ? TraceLog::CATEGORY_ENABLED : 0; | |
| 841 | 840 |
| 842 #if defined(OS_ANDROID) | 841 #if defined(OS_ANDROID) |
| 843 ApplyATraceEnabledFlag(&g_category_group_enabled[category_index]); | 842 ApplyATraceEnabledFlag(&g_category_group_enabled[category_index]); |
| 844 #endif | 843 #endif |
| 845 } | 844 } |
| 846 | 845 |
| 846 bool TraceLog::IsCategoryGroupEnabled( |
| 847 const unsigned char* category_group_enabled) { |
| 848 // On Android, ATrace and normal trace can be enabled independently. |
| 849 // This function checks if the normal trace is enabled. |
| 850 return *category_group_enabled & CATEGORY_ENABLED; |
| 851 } |
| 852 |
| 847 void TraceLog::EnableIncludedCategoryGroups() { | 853 void TraceLog::EnableIncludedCategoryGroups() { |
| 848 for (int i = 0; i < g_category_index; i++) | 854 for (int i = 0; i < g_category_index; i++) |
| 849 EnableIncludedCategoryGroup(i); | 855 EnableIncludedCategoryGroup(i); |
| 850 } | 856 } |
| 851 | 857 |
| 852 const unsigned char* TraceLog::GetCategoryGroupEnabledInternal( | 858 const unsigned char* TraceLog::GetCategoryGroupEnabledInternal( |
| 853 const char* category_group) { | 859 const char* category_group) { |
| 854 DCHECK(!strchr(category_group, '"')) << | 860 DCHECK(!strchr(category_group, '"')) << |
| 855 "Category groups may not contain double quote"; | 861 "Category groups may not contain double quote"; |
| 856 AutoLock lock(lock_); | 862 AutoLock lock(lock_); |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 flags); | 1115 flags); |
| 1110 #endif | 1116 #endif |
| 1111 | 1117 |
| 1112 TimeTicks now = timestamp - time_offset_; | 1118 TimeTicks now = timestamp - time_offset_; |
| 1113 EventCallback event_callback_copy; | 1119 EventCallback event_callback_copy; |
| 1114 | 1120 |
| 1115 NotificationHelper notifier(this); | 1121 NotificationHelper notifier(this); |
| 1116 | 1122 |
| 1117 do { | 1123 do { |
| 1118 AutoLock lock(lock_); | 1124 AutoLock lock(lock_); |
| 1119 if (*category_group_enabled != CATEGORY_ENABLED) | 1125 if (!IsCategoryGroupEnabled(category_group_enabled)) |
| 1120 return; | 1126 return; |
| 1121 | 1127 |
| 1122 event_callback_copy = event_callback_; | 1128 event_callback_copy = event_callback_; |
| 1123 if (logged_events_->IsFull()) | 1129 if (logged_events_->IsFull()) |
| 1124 break; | 1130 break; |
| 1125 | 1131 |
| 1126 const char* new_name = ThreadIdNameManager::GetInstance()-> | 1132 const char* new_name = ThreadIdNameManager::GetInstance()-> |
| 1127 GetName(thread_id); | 1133 GetName(thread_id); |
| 1128 // Check if the thread name has been set or changed since the previous | 1134 // Check if the thread name has been set or changed since the previous |
| 1129 // call (if any), but don't bother if the new name is empty. Note this will | 1135 // call (if any), but don't bother if the new name is empty. Note this will |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1505 NULL, // arg_names | 1511 NULL, // arg_names |
| 1506 NULL, // arg_types | 1512 NULL, // arg_types |
| 1507 NULL, // arg_values | 1513 NULL, // arg_values |
| 1508 NULL, // convertable values | 1514 NULL, // convertable values |
| 1509 TRACE_EVENT_FLAG_NONE); // flags | 1515 TRACE_EVENT_FLAG_NONE); // flags |
| 1510 } | 1516 } |
| 1511 } | 1517 } |
| 1512 | 1518 |
| 1513 } // namespace trace_event_internal | 1519 } // namespace trace_event_internal |
| 1514 | 1520 |
| OLD | NEW |