diff options
author | jbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-28 22:45:46 +0000 |
---|---|---|
committer | jbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-28 22:45:46 +0000 |
commit | 68013c2a6702fd9c72d3a4e3a2772559ce32202c (patch) | |
tree | 3ce56fc71c87844fe1b21bcf4767958d501a480b /base/debug/trace_event.cc | |
parent | e29f9339343b075dd9dfd1519caa05679f5db1b9 (diff) | |
download | chromium_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.cc | 51 |
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_, '"')); |