Chromium Code Reviews| Index: src/tracing/event-tracer.cc |
| diff --git a/src/tracing/event-tracer.cc b/src/tracing/event-tracer.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..39c6e095bf4e47073b4c64e1261d6ea00e1b3c8c |
| --- /dev/null |
| +++ b/src/tracing/event-tracer.cc |
| @@ -0,0 +1,55 @@ |
| +// Copyright 2015 the V8 project authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include <include/v8-tracing.h> |
| + |
| +#include "src/log.h" |
| +#include "src/v8.h" |
| + |
| +class DefaultEventTracer : public v8::EventTracer { |
| + virtual v8::EventTracer::Handle AddTraceEvent( |
| + char phase, const uint8_t* categoryEnabledFlag, const char* name, |
| + uint64_t id, uint64_t context_id, uint64_t bind_id, int numArgs, |
| + const char** argNames, const uint8_t* argTypes, const uint64_t* argValues, |
| + unsigned int flags) { |
| + return 0; |
| + } |
| + |
| + virtual void UpdateTraceEventDuration(const uint8_t* categoryEnabledFlag, |
| + const char* name, |
| + EventTracer::Handle handle) {} |
| + |
| + virtual const uint8_t* GetCategoryGroupEnabled(const char* name) { |
| + static uint8_t no = 0; |
| + return &no; |
| + } |
| + |
| + virtual const char* GetCategoryGroupName(const uint8_t* categoryEnabledFlag) { |
| + static const char* dummy = "dummy"; |
| + return dummy; |
| + } |
| +}; |
| + |
| + |
| +static void CleanupTracer() { |
| + // calling SetInstance will delete the existing instance. |
| + v8::EventTracer::SetInstance(NULL); |
| +} |
| + |
| + |
| +static void IntializeDefaultTracer(v8::EventTracer* current_instance) { |
| + if (current_instance == NULL) { |
| + v8::EventTracer::SetInstance(new (DefaultEventTracer)); |
| + } |
|
dsinclair
2015/08/25 13:56:22
nit: no {}'s on single line bodies
fmeawad
2015/08/25 21:32:01
Done.
|
| + atexit(CleanupTracer); |
| +} |
| + |
| + |
| +V8_DECLARE_ONCE(init_once); |
| +v8::EventTracer* v8::EventTracer::instance; |
| +v8::EventTracer* v8::EventTracer::GetInstance() { |
| + base::CallOnce(&init_once, IntializeDefaultTracer, v8::EventTracer::instance); |
| + DCHECK(v8::EventTracer::instance); |
| + return v8::EventTracer::instance; |
| +} |