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

Unified Diff: base/debug/trace_event_impl.h

Issue 109933006: Implement sampling profiler (chromium side change) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: base/debug/trace_event_impl.h
diff --git a/base/debug/trace_event_impl.h b/base/debug/trace_event_impl.h
index 61794807a41323a2f7e29d2addbc101973a072c1..7dd4a00fd251a70ff0d8c24679f8d955252b44c1 100644
--- a/base/debug/trace_event_impl.h
+++ b/base/debug/trace_event_impl.h
@@ -354,6 +354,12 @@ class TraceSamplingThread;
class BASE_EXPORT TraceLog {
public:
+ enum Mode {
+ DISABLED = 0,
+ RECORDING_MODE,
+ MONITORING_MODE,
+ };
+
// Options determines how the trace buffer stores data.
enum Options {
// Record until the trace buffer is full.
@@ -366,21 +372,21 @@ class BASE_EXPORT TraceLog {
// Enable the sampling profiler in the recording mode.
ENABLE_SAMPLING = 1 << 2,
- // Enable the sampling profiler in the monitoring mode.
- MONITOR_SAMPLING = 1 << 3,
-
// Echo to console. Events are discarded.
- ECHO_TO_CONSOLE = 1 << 4,
+ ECHO_TO_CONSOLE = 1 << 3,
};
// The pointer returned from GetCategoryGroupEnabledInternal() points to a
// value with zero or more of the following bits. Used in this class only.
// The TRACE_EVENT macros should only use the value as a bool.
+ // These values must be in sync with macro values in TraceEvent.h in Blink.
enum CategoryGroupEnabledFlags {
- // Normal enabled flag for category groups enabled by SetEnabled().
+ // Category group enabled for the recording mode.
ENABLED_FOR_RECORDING = 1 << 0,
+ // Category group enabled for the monitoring mode.
+ ENABLED_FOR_MONITORING = 1 << 1,
// Category group enabled by SetEventCallbackEnabled().
- ENABLED_FOR_EVENT_CALLBACK = 1 << 1,
+ ENABLED_FOR_EVENT_CALLBACK = 1 << 2,
};
static TraceLog* GetInstance();
@@ -400,12 +406,13 @@ class BASE_EXPORT TraceLog {
// See CategoryFilter comments for details on how to control what categories
// will be traced. If tracing has already been enabled, |category_filter| will
// be merged into the current category filter.
- void SetEnabled(const CategoryFilter& category_filter, Options options);
+ void SetEnabled(const CategoryFilter& category_filter,
+ Mode mode, Options options);
// Disables normal tracing for all categories.
void SetDisabled();
- bool IsEnabled() { return enabled_; }
+ bool IsEnabled() { return mode_ != DISABLED; }
// The number of times we have begun recording traces. If tracing is off,
// returns -1. If tracing is on, then it returns the number of times we have
@@ -426,7 +433,7 @@ class BASE_EXPORT TraceLog {
class EnabledStateObserver {
public:
// Called just after the tracing system becomes enabled, outside of the
- // |lock_|. TraceLog::IsEnabled() is true at this point.
+ // |lock_|. TraceLog::IsEnabled() is true at this point.
virtual void OnTraceLogEnabled() = 0;
// Called just after the tracing system disables, outside of the |lock_|.
@@ -591,9 +598,9 @@ class BASE_EXPORT TraceLog {
// by the Singleton class.
friend struct DefaultSingletonTraits<TraceLog>;
- // Enable/disable each category group based on the current enabled_,
+ // Enable/disable each category group based on the current mode_,
// category_filter_, event_callback_ and event_callback_category_filter_.
- // Enable the category group if enabled_ is true and category_filter_ matches
+ // Enable the category group in the enabled mode if category_filter_ matches
// the category group, or event_callback_ is not null and
// event_callback_category_filter_ matches the category group.
void UpdateCategoryGroupEnabledFlags();
@@ -652,7 +659,7 @@ class BASE_EXPORT TraceLog {
// and thread_colors_.
Lock thread_info_lock_;
int locked_line_;
- bool enabled_;
+ Mode mode_;
int num_traces_recorded_;
scoped_ptr<TraceBuffer> logged_events_;
subtle::AtomicWord /* EventCallback */ event_callback_;

Powered by Google App Engine
This is Rietveld 408576698