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 @@
'task_queue_unittest.cc',
'task_unittest.cc',
'template_util_unittest.cc',
'test/trace_event_analyzer_unittest.cc',
'threading/non_thread_safe_unittest.cc',
'threading/platform_thread_unittest.cc',
'threading/simple_thread_unittest.cc',
......@@ -445,8 +444,6 @@
'test/test_timeouts.h',
'test/thread_test_helper.cc',
'test/thread_test_helper.h',
'test/trace_event_analyzer.cc',
'test/trace_event_analyzer.h',
],
},
{
......
......@@ -11,6 +11,7 @@
#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"
......@@ -118,6 +119,22 @@ 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
......@@ -204,38 +221,6 @@ 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,
......@@ -248,7 +233,7 @@ void TraceEvent::AppendEventsAsJSON(const std::vector<TraceEvent>& events,
}
void TraceEvent::AppendAsJSON(std::string* out) const {
const char* phase_str = GetPhaseString(phase_);
const char* phase_str = GetPhaseStr(phase_);
int64 time_int64 = timestamp_.ToInternalValue();
// Category name checked at category creation time.
DCHECK(!strchr(name_, '"'));
......
......@@ -102,7 +102,6 @@
#include "base/callback.h"
#include "base/hash_tables.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/singleton.h"
#include "base/string_util.h"
#include "base/third_party/dynamic_annotations/dynamic_annotations.h"
......@@ -420,10 +419,6 @@ class BASE_EXPORT TraceValue {
return value;
}
bool is_string() const {
return type_ == TRACE_TYPE_STRING || type_ == TRACE_TYPE_STATIC_STRING;
}
void AppendAsJSON(std::string* out) const;
Type type() const {
......@@ -450,7 +445,7 @@ class BASE_EXPORT TraceValue {
return value_.as_pointer;
}
const char* as_string() const {
DCHECK(is_string());
DCHECK(type_ == TRACE_TYPE_STRING || type_ == TRACE_TYPE_STATIC_STRING);
return value_.as_string;
}
const char** as_assignable_string() {
......@@ -476,7 +471,7 @@ class BASE_EXPORT TraceValue {
// OutputCallback whenever the tracing system decides to flush. This
// can happen at any time, on any thread, or you can programatically
// force it to happen.
class BASE_EXPORT TraceEvent {
class TraceEvent {
public:
TraceEvent();
TraceEvent(unsigned long process_id,
......@@ -490,9 +485,6 @@ class BASE_EXPORT TraceEvent {
bool copy);
~TraceEvent();
static const char* GetPhaseString(TraceEventPhase phase);
static TraceEventPhase GetPhase(const char* phase);
// Serialize event data to JSON
static void AppendEventsAsJSON(const std::vector<TraceEvent>& events,
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