Index: base/debug/trace_event.cc |
diff --git a/base/debug/trace_event.cc b/base/debug/trace_event.cc |
index 16538c1d04a923f1b6522c775e2f223e6d10836f..c219cec293b1dd35c999fae2fa0df90af0480f08 100644 |
--- a/base/debug/trace_event.cc |
+++ b/base/debug/trace_event.cc |
@@ -28,22 +28,6 @@ static const char* kEventTypeNames[] = { |
static const FilePath::CharType* kLogFileName = |
FILE_PATH_LITERAL("trace_%d.log"); |
-TraceLog::TraceLog() : enabled_(false), log_file_(NULL) { |
- base::ProcessHandle proc = base::GetCurrentProcessHandle(); |
-#if !defined(OS_MACOSX) |
- process_metrics_.reset(base::ProcessMetrics::CreateProcessMetrics(proc)); |
-#else |
- // The default port provider is sufficient to get data for the current |
- // process. |
- process_metrics_.reset(base::ProcessMetrics::CreateProcessMetrics(proc, |
- NULL)); |
-#endif |
-} |
- |
-TraceLog::~TraceLog() { |
- Stop(); |
-} |
- |
// static |
TraceLog* TraceLog::GetInstance() { |
return Singleton<TraceLog, DefaultSingletonTraits<TraceLog> >::get(); |
@@ -59,61 +43,11 @@ bool TraceLog::StartTracing() { |
return TraceLog::GetInstance()->Start(); |
} |
-bool TraceLog::Start() { |
- if (enabled_) |
- return true; |
- enabled_ = OpenLogFile(); |
- if (enabled_) { |
- Log("var raw_trace_events = [\n"); |
- trace_start_time_ = TimeTicks::Now(); |
- timer_.Start(TimeDelta::FromMilliseconds(250), this, &TraceLog::Heartbeat); |
- } |
- return enabled_; |
-} |
- |
// static |
void TraceLog::StopTracing() { |
return TraceLog::GetInstance()->Stop(); |
} |
-void TraceLog::Stop() { |
- if (enabled_) { |
- enabled_ = false; |
- Log("];\n"); |
- CloseLogFile(); |
- timer_.Stop(); |
- } |
-} |
- |
-void TraceLog::Heartbeat() { |
- std::string cpu = StringPrintf("%.0f", process_metrics_->GetCPUUsage()); |
- TRACE_EVENT_INSTANT("heartbeat.cpu", 0, cpu); |
-} |
- |
-void TraceLog::CloseLogFile() { |
- if (log_file_) { |
- file_util::CloseFile(log_file_); |
- } |
-} |
- |
-bool TraceLog::OpenLogFile() { |
- FilePath::StringType pid_filename = |
- StringPrintf(kLogFileName, base::GetCurrentProcId()); |
- FilePath log_file_path; |
- if (!PathService::Get(base::DIR_EXE, &log_file_path)) |
- return false; |
- log_file_path = log_file_path.Append(pid_filename); |
- log_file_ = file_util::OpenFile(log_file_path, "a"); |
- if (!log_file_) { |
- // try the current directory |
- log_file_ = file_util::OpenFile(FilePath(pid_filename), "a"); |
- if (!log_file_) { |
- return false; |
- } |
- } |
- return true; |
-} |
- |
void TraceLog::Trace(const std::string& name, |
EventType type, |
const void* id, |
@@ -158,6 +92,72 @@ void TraceLog::Trace(const std::string& name, |
Log(msg); |
} |
+TraceLog::TraceLog() : enabled_(false), log_file_(NULL) { |
+ base::ProcessHandle proc = base::GetCurrentProcessHandle(); |
+#if !defined(OS_MACOSX) |
+ process_metrics_.reset(base::ProcessMetrics::CreateProcessMetrics(proc)); |
+#else |
+ // The default port provider is sufficient to get data for the current |
+ // process. |
+ process_metrics_.reset(base::ProcessMetrics::CreateProcessMetrics(proc, |
+ NULL)); |
+#endif |
+} |
+ |
+TraceLog::~TraceLog() { |
+ Stop(); |
+} |
+ |
+bool TraceLog::OpenLogFile() { |
+ FilePath::StringType pid_filename = |
+ StringPrintf(kLogFileName, base::GetCurrentProcId()); |
+ FilePath log_file_path; |
+ if (!PathService::Get(base::DIR_EXE, &log_file_path)) |
+ return false; |
+ log_file_path = log_file_path.Append(pid_filename); |
+ log_file_ = file_util::OpenFile(log_file_path, "a"); |
+ if (!log_file_) { |
+ // try the current directory |
+ log_file_ = file_util::OpenFile(FilePath(pid_filename), "a"); |
+ if (!log_file_) { |
+ return false; |
+ } |
+ } |
+ return true; |
+} |
+ |
+void TraceLog::CloseLogFile() { |
+ if (log_file_) { |
+ file_util::CloseFile(log_file_); |
+ } |
+} |
+ |
+bool TraceLog::Start() { |
+ if (enabled_) |
+ return true; |
+ enabled_ = OpenLogFile(); |
+ if (enabled_) { |
+ Log("var raw_trace_events = [\n"); |
+ trace_start_time_ = TimeTicks::Now(); |
+ timer_.Start(TimeDelta::FromMilliseconds(250), this, &TraceLog::Heartbeat); |
+ } |
+ return enabled_; |
+} |
+ |
+void TraceLog::Stop() { |
+ if (enabled_) { |
+ enabled_ = false; |
+ Log("];\n"); |
+ CloseLogFile(); |
+ timer_.Stop(); |
+ } |
+} |
+ |
+void TraceLog::Heartbeat() { |
+ std::string cpu = StringPrintf("%.0f", process_metrics_->GetCPUUsage()); |
+ TRACE_EVENT_INSTANT("heartbeat.cpu", 0, cpu); |
+} |
+ |
void TraceLog::Log(const std::string& msg) { |
AutoLock lock(file_lock_); |