summaryrefslogtreecommitdiffstats
path: root/base/debug/trace_event.cc
diff options
context:
space:
mode:
authorjbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-28 22:45:46 +0000
committerjbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-28 22:45:46 +0000
commit68013c2a6702fd9c72d3a4e3a2772559ce32202c (patch)
tree3ce56fc71c87844fe1b21bcf4767958d501a480b /base/debug/trace_event.cc
parente29f9339343b075dd9dfd1519caa05679f5db1b9 (diff)
downloadchromium_src-68013c2a6702fd9c72d3a4e3a2772559ce32202c.zip
chromium_src-68013c2a6702fd9c72d3a4e3a2772559ce32202c.tar.gz
chromium_src-68013c2a6702fd9c72d3a4e3a2772559ce32202c.tar.bz2
add classes trace_analyzer::Query and TraceAnalyzer to make it easy to search through trace data.
This also adds a trace_analyzer::TraceEvent class that can be constructed from JSON data (via base::Value). TraceEvent mirrors base::debug::TraceEvent in a form that is lower performance and easier to use in test code. BUG=95714 TEST=base_unittests Review URL: http://codereview.chromium.org/7981004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107813 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/debug/trace_event.cc')
-rw-r--r--base/debug/trace_event.cc51
1 files changed, 33 insertions, 18 deletions
diff --git a/base/debug/trace_event.cc b/base/debug/trace_event.cc
index 63f057f..d3bc293 100644
--- a/base/debug/trace_event.cc
+++ b/base/debug/trace_event.cc
@@ -11,7 +11,6 @@
#endif
#include "base/bind.h"
#include "base/format_macros.h"
-#include "base/memory/ref_counted_memory.h"
#include "base/process_util.h"
#include "base/stringprintf.h"
#include "base/threading/thread_local.h"
@@ -119,22 +118,6 @@ void TraceValue::AppendAsJSON(std::string* out) const {
namespace {
-const char* GetPhaseStr(TraceEventPhase phase) {
- switch(phase) {
- case TRACE_EVENT_PHASE_BEGIN:
- return "B";
- case TRACE_EVENT_PHASE_INSTANT:
- return "I";
- case TRACE_EVENT_PHASE_END:
- return "E";
- case TRACE_EVENT_PHASE_METADATA:
- return "M";
- default:
- NOTREACHED() << "Invalid phase argument";
- return "?";
- }
-}
-
size_t GetAllocLength(const char* str) { return str ? strlen(str) + 1 : 0; }
// Copies |*member| into |*buffer|, sets |*member| to point to this new
@@ -221,6 +204,38 @@ TraceEvent::TraceEvent(unsigned long process_id,
TraceEvent::~TraceEvent() {
}
+const char* TraceEvent::GetPhaseString(TraceEventPhase phase) {
+ switch(phase) {
+ case TRACE_EVENT_PHASE_BEGIN:
+ return "B";
+ case TRACE_EVENT_PHASE_INSTANT:
+ return "I";
+ case TRACE_EVENT_PHASE_END:
+ return "E";
+ case TRACE_EVENT_PHASE_METADATA:
+ return "M";
+ default:
+ NOTREACHED() << "Invalid phase argument";
+ return "?";
+ }
+}
+
+TraceEventPhase TraceEvent::GetPhase(const char* phase) {
+ switch(*phase) {
+ case 'B':
+ return TRACE_EVENT_PHASE_BEGIN;
+ case 'I':
+ return TRACE_EVENT_PHASE_INSTANT;
+ case 'E':
+ return TRACE_EVENT_PHASE_END;
+ case 'M':
+ return TRACE_EVENT_PHASE_METADATA;
+ default:
+ NOTREACHED() << "Invalid phase name";
+ return TRACE_EVENT_PHASE_METADATA;
+ }
+}
+
void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events,
size_t start,
size_t count,
@@ -233,7 +248,7 @@ void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events,
}
void TraceEvent::AppendAsJSON(std::string* out) const {
- const char* phase_str = GetPhaseStr(phase_);
+ const char* phase_str = GetPhaseString(phase_);
int64 time_int64 = timestamp_.ToInternalValue();
// Category name checked at category creation time.
DCHECK(!strchr(name_, '"'));