summaryrefslogtreecommitdiffstats
path: root/net/disk_cache/trace.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/disk_cache/trace.cc')
-rw-r--r--net/disk_cache/trace.cc24
1 files changed, 22 insertions, 2 deletions
diff --git a/net/disk_cache/trace.cc b/net/disk_cache/trace.cc
index c16068a..15c083d 100644
--- a/net/disk_cache/trace.cc
+++ b/net/disk_cache/trace.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -10,6 +10,7 @@
#endif
#include "base/logging.h"
+#include "net/disk_cache/stress_support.h"
// Change this value to 1 to enable tracing on a release build. By default,
// tracing is enabled only on debug builds.
@@ -23,7 +24,13 @@
namespace {
const int kEntrySize = 48;
+#if defined(NET_BUILD_STRESS_CACHE)
+const int kNumberOfEntries = 500000;
+#else
const int kNumberOfEntries = 5000; // 240 KB.
+#endif
+
+bool s_trace_enabled = false;
struct TraceBuffer {
int num_traces;
@@ -67,11 +74,16 @@ TraceObject::~TraceObject() {
DestroyTrace();
}
+void TraceObject::EnableTracing(bool enable) {
+ s_trace_enabled = enable;
+}
+
#if ENABLE_TRACING
static TraceBuffer* s_trace_buffer = NULL;
void InitTrace(void) {
+ s_trace_enabled = true;
if (s_trace_buffer)
return;
@@ -86,7 +98,7 @@ void DestroyTrace(void) {
}
void Trace(const char* format, ...) {
- if (!s_trace_buffer)
+ if (!s_trace_buffer || !s_trace_enabled)
return;
va_list ap;
@@ -99,6 +111,14 @@ void Trace(const char* format, ...) {
sizeof(s_trace_buffer->buffer[s_trace_buffer->current]), format,
ap);
#endif
+
+#if defined(DISK_CACHE_TRACE_TO_LOG)
+ char line[kEntrySize + 2];
+ memcpy(line, s_trace_buffer->buffer[s_trace_buffer->current], kEntrySize);
+ line[kEntrySize] = '\0';
+ LOG(INFO) << line;
+#endif
+
s_trace_buffer->num_traces++;
s_trace_buffer->current++;
if (s_trace_buffer->current == kNumberOfEntries)