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

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

Issue 17451017: Process names, and predictable thread and process ordering in about:tracing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix trybots i think 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 5
6 #ifndef BASE_DEBUG_TRACE_EVENT_IMPL_H_ 6 #ifndef BASE_DEBUG_TRACE_EVENT_IMPL_H_
7 #define BASE_DEBUG_TRACE_EVENT_IMPL_H_ 7 #define BASE_DEBUG_TRACE_EVENT_IMPL_H_
8 8
9 #include <stack> 9 #include <stack>
10 #include <string> 10 #include <string>
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 static void Resurrect(); 444 static void Resurrect();
445 445
446 // Allow tests to inspect TraceEvents. 446 // Allow tests to inspect TraceEvents.
447 size_t GetEventsSize() const { return logged_events_->Size(); } 447 size_t GetEventsSize() const { return logged_events_->Size(); }
448 const TraceEvent& GetEventAt(size_t index) const { 448 const TraceEvent& GetEventAt(size_t index) const {
449 return logged_events_->GetEventAt(index); 449 return logged_events_->GetEventAt(index);
450 } 450 }
451 451
452 void SetProcessID(int process_id); 452 void SetProcessID(int process_id);
453 453
454 // Process sort indices, if set, override the order of a process will appear
455 // relative to other processes in the trace viewer. Processes are sorted first
456 // on their sort index, ascending, then by their name, and then tid.
457 void SetProcessSortIndex(int sort_index);
458
459 // Sets the name of the process.
460 void SetProcessName(const std::string& process_name);
461
462 // Processes can have labels in addition to their names. Use labels, for
463 // instance, to list out the web page titles that a process is handling.
464 void UpdateProcessLabel(int label_id, const std::string& current_label);
465 void RemoveProcessLabel(int label_id);
466
467 // Thread sort indices, if set, override the order of a thread will appear
468 // within its process in the trace viewer. Threads are sorted first on their
469 // sort index, ascending, then by their name, and then tid.
470 void SetThreadSortIndex(PlatformThreadId , int sort_index);
471
454 // Allow setting an offset between the current TimeTicks time and the time 472 // Allow setting an offset between the current TimeTicks time and the time
455 // that should be reported. 473 // that should be reported.
456 void SetTimeOffset(TimeDelta offset); 474 void SetTimeOffset(TimeDelta offset);
457 475
458 size_t GetObserverCountForTest() const; 476 size_t GetObserverCountForTest() const;
459 477
460 private: 478 private:
461 // This allows constructor and destructor to be private and usable only 479 // This allows constructor and destructor to be private and usable only
462 // by the Singleton class. 480 // by the Singleton class.
463 friend struct StaticMemorySingletonTraits<TraceLog>; 481 friend struct StaticMemorySingletonTraits<TraceLog>;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 520
503 private: 521 private:
504 TraceLog* trace_log_; 522 TraceLog* trace_log_;
505 NotificationCallback callback_copy_; 523 NotificationCallback callback_copy_;
506 int notification_; 524 int notification_;
507 }; 525 };
508 526
509 TraceLog(); 527 TraceLog();
510 ~TraceLog(); 528 ~TraceLog();
511 const unsigned char* GetCategoryGroupEnabledInternal(const char* name); 529 const unsigned char* GetCategoryGroupEnabledInternal(const char* name);
512 void AddThreadNameMetadataEvents(); 530 void AddMetadataEvents();
513 531
514 #if defined(OS_ANDROID) 532 #if defined(OS_ANDROID)
515 void SendToATrace(char phase, 533 void SendToATrace(char phase,
516 const char* category_group, 534 const char* category_group,
517 const char* name, 535 const char* name,
518 unsigned long long id, 536 unsigned long long id,
519 int num_args, 537 int num_args,
520 const char** arg_names, 538 const char** arg_names,
521 const unsigned char* arg_types, 539 const unsigned char* arg_types,
522 const unsigned long long* arg_values, 540 const unsigned long long* arg_values,
523 scoped_ptr<ConvertableToTraceFormat> convertable_values[], 541 scoped_ptr<ConvertableToTraceFormat> convertable_values[],
524 unsigned char flags); 542 unsigned char flags);
525 static void ApplyATraceEnabledFlag(unsigned char* category_group_enabled); 543 static void ApplyATraceEnabledFlag(unsigned char* category_group_enabled);
526 #endif 544 #endif
527 545
528 TraceBuffer* GetTraceBuffer(); 546 TraceBuffer* GetTraceBuffer();
529 547
530 // TODO(nduca): switch to per-thread trace buffers to reduce thread 548 // TODO(nduca): switch to per-thread trace buffers to reduce thread
531 // synchronization. 549 // synchronization.
532 // This lock protects TraceLog member accesses from arbitrary threads. 550 // This lock protects TraceLog member accesses from arbitrary threads.
533 Lock lock_; 551 Lock lock_;
534 int enable_count_; 552 int enable_count_;
535 int num_traces_recorded_; 553 int num_traces_recorded_;
536 NotificationCallback notification_callback_; 554 NotificationCallback notification_callback_;
537 scoped_ptr<TraceBuffer> logged_events_; 555 scoped_ptr<TraceBuffer> logged_events_;
538 EventCallback event_callback_; 556 EventCallback event_callback_;
539 bool dispatching_to_observer_list_; 557 bool dispatching_to_observer_list_;
540 std::vector<EnabledStateObserver*> enabled_state_observer_list_; 558 std::vector<EnabledStateObserver*> enabled_state_observer_list_;
541 559
560 std::string process_name_;
561 base::hash_map<int, std::string> process_labels_;
562 int process_sort_index_;
563 base::hash_map<int, int> thread_sort_indices_;
564
542 base::hash_map<int, std::string> thread_names_; 565 base::hash_map<int, std::string> thread_names_;
543 base::hash_map<int, std::stack<TimeTicks> > thread_event_start_times_; 566 base::hash_map<int, std::stack<TimeTicks> > thread_event_start_times_;
544 base::hash_map<std::string, int> thread_colors_; 567 base::hash_map<std::string, int> thread_colors_;
545 568
546 // XORed with TraceID to make it unlikely to collide with other processes. 569 // XORed with TraceID to make it unlikely to collide with other processes.
547 unsigned long long process_id_hash_; 570 unsigned long long process_id_hash_;
548 571
549 int process_id_; 572 int process_id_;
550 573
551 TimeDelta time_offset_; 574 TimeDelta time_offset_;
(...skipping 10 matching lines...) Expand all
562 585
563 CategoryFilter category_filter_; 586 CategoryFilter category_filter_;
564 587
565 DISALLOW_COPY_AND_ASSIGN(TraceLog); 588 DISALLOW_COPY_AND_ASSIGN(TraceLog);
566 }; 589 };
567 590
568 } // namespace debug 591 } // namespace debug
569 } // namespace base 592 } // namespace base
570 593
571 #endif // BASE_DEBUG_TRACE_EVENT_IMPL_H_ 594 #endif // BASE_DEBUG_TRACE_EVENT_IMPL_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