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

Side by Side Diff: base/debug/trace_event_android.cc

Issue 12150004: Category group support/Renamings. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: More renamings and category filter cleanups. Created 7 years, 10 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
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 #include "base/debug/trace_event_impl.h" 5 #include "base/debug/trace_event_impl.h"
6 6
7 #include <fcntl.h> 7 #include <fcntl.h>
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 20 matching lines...) Expand all
31 31
32 void TraceLog::StopATrace() { 32 void TraceLog::StopATrace() {
33 AutoLock lock(lock_); 33 AutoLock lock(lock_);
34 if (g_atrace_fd != -1) { 34 if (g_atrace_fd != -1) {
35 close(g_atrace_fd); 35 close(g_atrace_fd);
36 g_atrace_fd = -1; 36 g_atrace_fd = -1;
37 } 37 }
38 } 38 }
39 39
40 void TraceLog::SendToATrace(char phase, 40 void TraceLog::SendToATrace(char phase,
41 const char* category, 41 const char* category_group,
42 const char* name, 42 const char* name,
43 int num_args, 43 int num_args,
44 const char** arg_names, 44 const char** arg_names,
45 const unsigned char* arg_types, 45 const unsigned char* arg_types,
46 const unsigned long long* arg_values) { 46 const unsigned long long* arg_values) {
47 if (g_atrace_fd == -1) 47 if (g_atrace_fd == -1)
48 return; 48 return;
49 49
50 switch (phase) { 50 switch (phase) {
51 case TRACE_EVENT_PHASE_BEGIN: 51 case TRACE_EVENT_PHASE_BEGIN:
52 case TRACE_EVENT_PHASE_INSTANT: { 52 case TRACE_EVENT_PHASE_INSTANT: {
53 std::string out = StringPrintf("B|%d|%s-%s", getpid(), category, name); 53 std::string out = StringPrintf("B|%d|%s-%s", getpid(), category_group,
nduca 2013/02/21 06:02:36 style nit - you could wrap this at the opening ( a
rterrazas 2013/02/25 05:55:02 Done.
54 name);
54 for (int i = 0; i < num_args; ++i) { 55 for (int i = 0; i < num_args; ++i) {
55 out += (i == 0 ? '|' : ';'); 56 out += (i == 0 ? '|' : ';');
56 out += arg_names[i]; 57 out += arg_names[i];
57 out += '='; 58 out += '=';
58 TraceEvent::TraceValue value; 59 TraceEvent::TraceValue value;
59 value.as_uint = arg_values[i]; 60 value.as_uint = arg_values[i];
60 std::string::size_type value_start = out.length(); 61 std::string::size_type value_start = out.length();
61 TraceEvent::AppendValueAsJSON(arg_types[i], value, &out); 62 TraceEvent::AppendValueAsJSON(arg_types[i], value, &out);
62 // Remove the quotes which may confuse the atrace script. 63 // Remove the quotes which may confuse the atrace script.
63 ReplaceSubstringsAfterOffset(&out, value_start, "\\\"", "'"); 64 ReplaceSubstringsAfterOffset(&out, value_start, "\\\"", "'");
64 ReplaceSubstringsAfterOffset(&out, value_start, "\"", ""); 65 ReplaceSubstringsAfterOffset(&out, value_start, "\"", "");
65 // Replace chars used for separators with similar chars in the value. 66 // Replace chars used for separators with similar chars in the value.
66 std::replace(out.begin() + value_start, out.end(), ';', ','); 67 std::replace(out.begin() + value_start, out.end(), ';', ',');
67 std::replace(out.begin() + value_start, out.end(), '|', '!'); 68 std::replace(out.begin() + value_start, out.end(), '|', '!');
68 } 69 }
69 write(g_atrace_fd, out.c_str(), out.size()); 70 write(g_atrace_fd, out.c_str(), out.size());
70 71
71 if (phase != TRACE_EVENT_PHASE_INSTANT) 72 if (phase != TRACE_EVENT_PHASE_INSTANT)
72 break; 73 break;
73 // Fall through. Simulate an instance event with a pair of begin/end. 74 // Fall through. Simulate an instance event with a pair of begin/end.
74 } 75 }
75 case TRACE_EVENT_PHASE_END: { 76 case TRACE_EVENT_PHASE_END: {
76 // Though a single 'E' is enough, here append pid and name so that 77 // Though a single 'E' is enough, here append pid and name so that
77 // unpaired events can be found easily. 78 // unpaired events can be found easily.
78 std::string out = StringPrintf("E|%d|%s-%s", getpid(), category, name); 79 std::string out = StringPrintf("E|%d|%s-%s", getpid(), category_group,
80 name);
79 write(g_atrace_fd, out.c_str(), out.size()); 81 write(g_atrace_fd, out.c_str(), out.size());
80 break; 82 break;
81 } 83 }
82 case TRACE_EVENT_PHASE_COUNTER: 84 case TRACE_EVENT_PHASE_COUNTER:
83 for (int i = 0; i < num_args; ++i) { 85 for (int i = 0; i < num_args; ++i) {
84 DCHECK(arg_types[i] == TRACE_VALUE_TYPE_INT); 86 DCHECK(arg_types[i] == TRACE_VALUE_TYPE_INT);
85 std::string out = StringPrintf( 87 std::string out = StringPrintf(
86 "C|%d|%s-%s-%s|%d", 88 "C|%d|%s-%s-%s|%d",
87 getpid(), category, name, 89 getpid(), category_group, name,
88 arg_names[i], static_cast<int>(arg_values[i])); 90 arg_names[i], static_cast<int>(arg_values[i]));
89 write(g_atrace_fd, out.c_str(), out.size()); 91 write(g_atrace_fd, out.c_str(), out.size());
90 } 92 }
91 break; 93 break;
92 94
93 default: 95 default:
94 // Do nothing. 96 // Do nothing.
95 break; 97 break;
96 } 98 }
97 } 99 }
98 100
99 // Must be called with lock_ locked. 101 // Must be called with lock_ locked.
100 void TraceLog::ApplyATraceEnabledFlag(unsigned char* category_enabled) { 102 void TraceLog::ApplyATraceEnabledFlag(unsigned char* category_group_enabled) {
101 if (g_atrace_fd != -1) 103 if (g_atrace_fd != -1)
102 *category_enabled |= ATRACE_ENABLED; 104 *category_group_enabled |= ATRACE_ENABLED;
103 else 105 else
104 *category_enabled &= ~ATRACE_ENABLED; 106 *category_group_enabled &= ~ATRACE_ENABLED;
105 } 107 }
106 108
107 } // namespace debug 109 } // namespace debug
108 } // namespace base 110 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698