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

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

Issue 1424703003: Kills TraceTicks, which was functionally the same as TimeTicks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed win compile error. Created 5 years, 1 month 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
« no previous file with comments | « base/trace_event/trace_event_unittest.cc ('k') | base/trace_event/trace_log.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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #ifndef BASE_TRACE_EVENT_TRACE_LOG_H_ 5 #ifndef BASE_TRACE_EVENT_TRACE_LOG_H_
6 #define BASE_TRACE_EVENT_TRACE_LOG_H_ 6 #define BASE_TRACE_EVENT_TRACE_LOG_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 126
127 // Not using base::Callback because of its limited by 7 parameters. 127 // Not using base::Callback because of its limited by 7 parameters.
128 // Also, using primitive type allows directly passing callback from WebCore. 128 // Also, using primitive type allows directly passing callback from WebCore.
129 // WARNING: It is possible for the previously set callback to be called 129 // WARNING: It is possible for the previously set callback to be called
130 // after a call to SetEventCallbackEnabled() that replaces or a call to 130 // after a call to SetEventCallbackEnabled() that replaces or a call to
131 // SetEventCallbackDisabled() that disables the callback. 131 // SetEventCallbackDisabled() that disables the callback.
132 // This callback may be invoked on any thread. 132 // This callback may be invoked on any thread.
133 // For TRACE_EVENT_PHASE_COMPLETE events, the client will still receive pairs 133 // For TRACE_EVENT_PHASE_COMPLETE events, the client will still receive pairs
134 // of TRACE_EVENT_PHASE_BEGIN and TRACE_EVENT_PHASE_END events to keep the 134 // of TRACE_EVENT_PHASE_BEGIN and TRACE_EVENT_PHASE_END events to keep the
135 // interface simple. 135 // interface simple.
136 typedef void (*EventCallback)(TraceTicks timestamp, 136 typedef void (*EventCallback)(TimeTicks timestamp,
137 char phase, 137 char phase,
138 const unsigned char* category_group_enabled, 138 const unsigned char* category_group_enabled,
139 const char* name, 139 const char* name,
140 unsigned long long id, 140 unsigned long long id,
141 int num_args, 141 int num_args,
142 const char* const arg_names[], 142 const char* const arg_names[],
143 const unsigned char arg_types[], 143 const unsigned char arg_types[],
144 const unsigned long long arg_values[], 144 const unsigned long long arg_values[],
145 unsigned int flags); 145 unsigned int flags);
146 146
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 const unsigned long long* arg_values, 214 const unsigned long long* arg_values,
215 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 215 const scoped_refptr<ConvertableToTraceFormat>* convertable_values,
216 unsigned int flags); 216 unsigned int flags);
217 TraceEventHandle AddTraceEventWithThreadIdAndTimestamp( 217 TraceEventHandle AddTraceEventWithThreadIdAndTimestamp(
218 char phase, 218 char phase,
219 const unsigned char* category_group_enabled, 219 const unsigned char* category_group_enabled,
220 const char* name, 220 const char* name,
221 unsigned long long id, 221 unsigned long long id,
222 unsigned long long context_id, 222 unsigned long long context_id,
223 int thread_id, 223 int thread_id,
224 const TraceTicks& timestamp, 224 const TimeTicks& timestamp,
225 int num_args, 225 int num_args,
226 const char** arg_names, 226 const char** arg_names,
227 const unsigned char* arg_types, 227 const unsigned char* arg_types,
228 const unsigned long long* arg_values, 228 const unsigned long long* arg_values,
229 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 229 const scoped_refptr<ConvertableToTraceFormat>* convertable_values,
230 unsigned int flags); 230 unsigned int flags);
231 TraceEventHandle AddTraceEventWithThreadIdAndTimestamp( 231 TraceEventHandle AddTraceEventWithThreadIdAndTimestamp(
232 char phase, 232 char phase,
233 const unsigned char* category_group_enabled, 233 const unsigned char* category_group_enabled,
234 const char* name, 234 const char* name,
235 unsigned long long id, 235 unsigned long long id,
236 unsigned long long context_id, 236 unsigned long long context_id,
237 unsigned long long bind_id, 237 unsigned long long bind_id,
238 int thread_id, 238 int thread_id,
239 const TraceTicks& timestamp, 239 const TimeTicks& timestamp,
240 int num_args, 240 int num_args,
241 const char** arg_names, 241 const char** arg_names,
242 const unsigned char* arg_types, 242 const unsigned char* arg_types,
243 const unsigned long long* arg_values, 243 const unsigned long long* arg_values,
244 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 244 const scoped_refptr<ConvertableToTraceFormat>* convertable_values,
245 unsigned int flags); 245 unsigned int flags);
246 246
247 // Adds a metadata event that will be written when the trace log is flushed. 247 // Adds a metadata event that will be written when the trace log is flushed.
248 void AddMetadataEvent( 248 void AddMetadataEvent(
249 const char* name, 249 const char* name,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 // Processes can have labels in addition to their names. Use labels, for 294 // Processes can have labels in addition to their names. Use labels, for
295 // instance, to list out the web page titles that a process is handling. 295 // instance, to list out the web page titles that a process is handling.
296 void UpdateProcessLabel(int label_id, const std::string& current_label); 296 void UpdateProcessLabel(int label_id, const std::string& current_label);
297 void RemoveProcessLabel(int label_id); 297 void RemoveProcessLabel(int label_id);
298 298
299 // Thread sort indices, if set, override the order of a thread will appear 299 // Thread sort indices, if set, override the order of a thread will appear
300 // within its process in the trace viewer. Threads are sorted first on their 300 // within its process in the trace viewer. Threads are sorted first on their
301 // sort index, ascending, then by their name, and then tid. 301 // sort index, ascending, then by their name, and then tid.
302 void SetThreadSortIndex(PlatformThreadId thread_id, int sort_index); 302 void SetThreadSortIndex(PlatformThreadId thread_id, int sort_index);
303 303
304 // Allow setting an offset between the current TraceTicks time and the time 304 // Allow setting an offset between the current TimeTicks time and the time
305 // that should be reported. 305 // that should be reported.
306 void SetTimeOffset(TimeDelta offset); 306 void SetTimeOffset(TimeDelta offset);
307 307
308 size_t GetObserverCountForTest() const; 308 size_t GetObserverCountForTest() const;
309 309
310 // Call this method if the current thread may block the message loop to 310 // Call this method if the current thread may block the message loop to
311 // prevent the thread from using the thread-local buffer because the thread 311 // prevent the thread from using the thread-local buffer because the thread
312 // may not handle the flush request in time causing lost of unflushed events. 312 // may not handle the flush request in time causing lost of unflushed events.
313 void SetCurrentThreadBlocksMessageLoop(); 313 void SetCurrentThreadBlocksMessageLoop();
314 314
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 367
368 InternalTraceOptions trace_options() const { 368 InternalTraceOptions trace_options() const {
369 return static_cast<InternalTraceOptions>( 369 return static_cast<InternalTraceOptions>(
370 subtle::NoBarrier_Load(&trace_options_)); 370 subtle::NoBarrier_Load(&trace_options_));
371 } 371 }
372 372
373 TraceBuffer* trace_buffer() const { return logged_events_.get(); } 373 TraceBuffer* trace_buffer() const { return logged_events_.get(); }
374 TraceBuffer* CreateTraceBuffer(); 374 TraceBuffer* CreateTraceBuffer();
375 375
376 std::string EventToConsoleMessage(unsigned char phase, 376 std::string EventToConsoleMessage(unsigned char phase,
377 const TraceTicks& timestamp, 377 const TimeTicks& timestamp,
378 TraceEvent* trace_event); 378 TraceEvent* trace_event);
379 379
380 TraceEvent* AddEventToThreadSharedChunkWhileLocked(TraceEventHandle* handle, 380 TraceEvent* AddEventToThreadSharedChunkWhileLocked(TraceEventHandle* handle,
381 bool check_buffer_is_full); 381 bool check_buffer_is_full);
382 void CheckIfBufferIsFullWhileLocked(); 382 void CheckIfBufferIsFullWhileLocked();
383 void SetDisabledWhileLocked(); 383 void SetDisabledWhileLocked();
384 384
385 TraceEvent* GetEventByHandleInternal(TraceEventHandle handle, 385 TraceEvent* GetEventByHandleInternal(TraceEventHandle handle,
386 OptionalAutoLock* lock); 386 OptionalAutoLock* lock);
387 387
(...skipping 13 matching lines...) Expand all
401 void OnFlushTimeout(int generation, bool discard_events); 401 void OnFlushTimeout(int generation, bool discard_events);
402 402
403 int generation() const { 403 int generation() const {
404 return static_cast<int>(subtle::NoBarrier_Load(&generation_)); 404 return static_cast<int>(subtle::NoBarrier_Load(&generation_));
405 } 405 }
406 bool CheckGeneration(int generation) const { 406 bool CheckGeneration(int generation) const {
407 return generation == this->generation(); 407 return generation == this->generation();
408 } 408 }
409 void UseNextTraceBuffer(); 409 void UseNextTraceBuffer();
410 410
411 TraceTicks OffsetNow() const { return OffsetTimestamp(TraceTicks::Now()); } 411 TimeTicks OffsetNow() const { return OffsetTimestamp(TimeTicks::Now()); }
412 TraceTicks OffsetTimestamp(const TraceTicks& timestamp) const { 412 TimeTicks OffsetTimestamp(const TimeTicks& timestamp) const {
413 return timestamp - time_offset_; 413 return timestamp - time_offset_;
414 } 414 }
415 415
416 // Internal representation of trace options since we store the currently used 416 // Internal representation of trace options since we store the currently used
417 // trace option as an AtomicWord. 417 // trace option as an AtomicWord.
418 static const InternalTraceOptions kInternalNone; 418 static const InternalTraceOptions kInternalNone;
419 static const InternalTraceOptions kInternalRecordUntilFull; 419 static const InternalTraceOptions kInternalRecordUntilFull;
420 static const InternalTraceOptions kInternalRecordContinuously; 420 static const InternalTraceOptions kInternalRecordContinuously;
421 static const InternalTraceOptions kInternalEchoToConsole; 421 static const InternalTraceOptions kInternalEchoToConsole;
422 static const InternalTraceOptions kInternalEnableSampling; 422 static const InternalTraceOptions kInternalEnableSampling;
(...skipping 14 matching lines...) Expand all
437 bool dispatching_to_observer_list_; 437 bool dispatching_to_observer_list_;
438 std::vector<EnabledStateObserver*> enabled_state_observer_list_; 438 std::vector<EnabledStateObserver*> enabled_state_observer_list_;
439 439
440 std::string process_name_; 440 std::string process_name_;
441 base::hash_map<int, std::string> process_labels_; 441 base::hash_map<int, std::string> process_labels_;
442 int process_sort_index_; 442 int process_sort_index_;
443 base::hash_map<int, int> thread_sort_indices_; 443 base::hash_map<int, int> thread_sort_indices_;
444 base::hash_map<int, std::string> thread_names_; 444 base::hash_map<int, std::string> thread_names_;
445 445
446 // The following two maps are used only when ECHO_TO_CONSOLE. 446 // The following two maps are used only when ECHO_TO_CONSOLE.
447 base::hash_map<int, std::stack<TraceTicks>> thread_event_start_times_; 447 base::hash_map<int, std::stack<TimeTicks>> thread_event_start_times_;
448 base::hash_map<std::string, int> thread_colors_; 448 base::hash_map<std::string, int> thread_colors_;
449 449
450 TraceTicks buffer_limit_reached_timestamp_; 450 TimeTicks buffer_limit_reached_timestamp_;
451 451
452 // XORed with TraceID to make it unlikely to collide with other processes. 452 // XORed with TraceID to make it unlikely to collide with other processes.
453 unsigned long long process_id_hash_; 453 unsigned long long process_id_hash_;
454 454
455 int process_id_; 455 int process_id_;
456 456
457 TimeDelta time_offset_; 457 TimeDelta time_offset_;
458 458
459 // Allow tests to wake up when certain events occur. 459 // Allow tests to wake up when certain events occur.
460 WatchEventCallback watch_event_callback_; 460 WatchEventCallback watch_event_callback_;
(...skipping 30 matching lines...) Expand all
491 subtle::AtomicWord generation_; 491 subtle::AtomicWord generation_;
492 bool use_worker_thread_; 492 bool use_worker_thread_;
493 493
494 DISALLOW_COPY_AND_ASSIGN(TraceLog); 494 DISALLOW_COPY_AND_ASSIGN(TraceLog);
495 }; 495 };
496 496
497 } // namespace trace_event 497 } // namespace trace_event
498 } // namespace base 498 } // namespace base
499 499
500 #endif // BASE_TRACE_EVENT_TRACE_LOG_H_ 500 #endif // BASE_TRACE_EVENT_TRACE_LOG_H_
OLDNEW
« no previous file with comments | « base/trace_event/trace_event_unittest.cc ('k') | base/trace_event/trace_log.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698