Commit 439c1b06 authored by jbates@chromium.org's avatar jbates@chromium.org

Revert 107813 - add classes trace_analyzer::Query and TraceAnalyzer to make it...

Revert 107813 - 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

TBR=jbates@chromium.org
Review URL: http://codereview.chromium.org/8413063

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107845 0039d316-1c4b-4281-b951-d872f2087c98
parent 2daab068
...@@ -240,7 +240,6 @@ ...@@ -240,7 +240,6 @@
'task_queue_unittest.cc', 'task_queue_unittest.cc',
'task_unittest.cc', 'task_unittest.cc',
'template_util_unittest.cc', 'template_util_unittest.cc',
'test/trace_event_analyzer_unittest.cc',
'threading/non_thread_safe_unittest.cc', 'threading/non_thread_safe_unittest.cc',
'threading/platform_thread_unittest.cc', 'threading/platform_thread_unittest.cc',
'threading/simple_thread_unittest.cc', 'threading/simple_thread_unittest.cc',
...@@ -445,8 +444,6 @@ ...@@ -445,8 +444,6 @@
'test/test_timeouts.h', 'test/test_timeouts.h',
'test/thread_test_helper.cc', 'test/thread_test_helper.cc',
'test/thread_test_helper.h', 'test/thread_test_helper.h',
'test/trace_event_analyzer.cc',
'test/trace_event_analyzer.h',
], ],
}, },
{ {
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#endif #endif
#include "base/bind.h" #include "base/bind.h"
#include "base/format_macros.h" #include "base/format_macros.h"
#include "base/memory/ref_counted_memory.h"
#include "base/process_util.h" #include "base/process_util.h"
#include "base/stringprintf.h" #include "base/stringprintf.h"
#include "base/threading/thread_local.h" #include "base/threading/thread_local.h"
...@@ -118,6 +119,22 @@ void TraceValue::AppendAsJSON(std::string* out) const { ...@@ -118,6 +119,22 @@ void TraceValue::AppendAsJSON(std::string* out) const {
namespace { 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; } size_t GetAllocLength(const char* str) { return str ? strlen(str) + 1 : 0; }
// Copies |*member| into |*buffer|, sets |*member| to point to this new // Copies |*member| into |*buffer|, sets |*member| to point to this new
...@@ -204,38 +221,6 @@ TraceEvent::TraceEvent(unsigned long process_id, ...@@ -204,38 +221,6 @@ TraceEvent::TraceEvent(unsigned long process_id,
TraceEvent::~TraceEvent() { 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, void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events,
size_t start, size_t start,
size_t count, size_t count,
...@@ -248,7 +233,7 @@ void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events, ...@@ -248,7 +233,7 @@ void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events,
} }
void TraceEvent::AppendAsJSON(std::string* out) const { void TraceEvent::AppendAsJSON(std::string* out) const {
const char* phase_str = GetPhaseString(phase_); const char* phase_str = GetPhaseStr(phase_);
int64 time_int64 = timestamp_.ToInternalValue(); int64 time_int64 = timestamp_.ToInternalValue();
// Category name checked at category creation time. // Category name checked at category creation time.
DCHECK(!strchr(name_, '"')); DCHECK(!strchr(name_, '"'));
......
...@@ -102,7 +102,6 @@ ...@@ -102,7 +102,6 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/hash_tables.h" #include "base/hash_tables.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/singleton.h" #include "base/memory/singleton.h"
#include "base/string_util.h" #include "base/string_util.h"
#include "base/third_party/dynamic_annotations/dynamic_annotations.h" #include "base/third_party/dynamic_annotations/dynamic_annotations.h"
...@@ -420,10 +419,6 @@ class BASE_EXPORT TraceValue { ...@@ -420,10 +419,6 @@ class BASE_EXPORT TraceValue {
return value; return value;
} }
bool is_string() const {
return type_ == TRACE_TYPE_STRING || type_ == TRACE_TYPE_STATIC_STRING;
}
void AppendAsJSON(std::string* out) const; void AppendAsJSON(std::string* out) const;
Type type() const { Type type() const {
...@@ -450,7 +445,7 @@ class BASE_EXPORT TraceValue { ...@@ -450,7 +445,7 @@ class BASE_EXPORT TraceValue {
return value_.as_pointer; return value_.as_pointer;
} }
const char* as_string() const { const char* as_string() const {
DCHECK(is_string()); DCHECK(type_ == TRACE_TYPE_STRING || type_ == TRACE_TYPE_STATIC_STRING);
return value_.as_string; return value_.as_string;
} }
const char** as_assignable_string() { const char** as_assignable_string() {
...@@ -476,7 +471,7 @@ class BASE_EXPORT TraceValue { ...@@ -476,7 +471,7 @@ class BASE_EXPORT TraceValue {
// OutputCallback whenever the tracing system decides to flush. This // OutputCallback whenever the tracing system decides to flush. This
// can happen at any time, on any thread, or you can programatically // can happen at any time, on any thread, or you can programatically
// force it to happen. // force it to happen.
class BASE_EXPORT TraceEvent { class TraceEvent {
public: public:
TraceEvent(); TraceEvent();
TraceEvent(unsigned long process_id, TraceEvent(unsigned long process_id,
...@@ -490,9 +485,6 @@ class BASE_EXPORT TraceEvent { ...@@ -490,9 +485,6 @@ class BASE_EXPORT TraceEvent {
bool copy); bool copy);
~TraceEvent(); ~TraceEvent();
static const char* GetPhaseString(TraceEventPhase phase);
static TraceEventPhase GetPhase(const char* phase);
// Serialize event data to JSON // Serialize event data to JSON
static void AppendEventsAsJSON(const std::vector<TraceEvent>& events, static void AppendEventsAsJSON(const std::vector<TraceEvent>& events,
size_t start, size_t start,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment