Index: include/libplatform/v8-tracing.h |
diff --git a/include/libplatform/v8-tracing.h b/include/libplatform/v8-tracing.h |
index dd0be2e6f153781d404e77292e78165c6299e003..daa066fd37c271fe576d10eca9383fd402d195d2 100644 |
--- a/include/libplatform/v8-tracing.h |
+++ b/include/libplatform/v8-tracing.h |
@@ -9,13 +9,27 @@ |
#include <memory> |
#include <vector> |
+#include "include/v8.h" |
lpy
2016/07/28 21:18:20
Please do not include v8.h here.
rskang
2016/07/28 22:44:27
Done.
|
+ |
namespace v8 { |
namespace platform { |
namespace tracing { |
+const int kTraceMaxNumArgs = 2; |
+ |
class TraceObject { |
public: |
+ union TraceValue { |
+ bool as_bool; |
+ uint64_t as_uint; |
+ int64_t as_int; |
+ double as_double; |
+ const void* as_pointer; |
+ const char* as_string; |
+ }; |
+ |
TraceObject() {} |
+ ~TraceObject(); |
void Initialize(char phase, const uint8_t* category_enabled_flag, |
const char* name, const char* scope, uint64_t id, |
uint64_t bind_id, int num_args, const char** arg_names, |
@@ -40,6 +54,9 @@ class TraceObject { |
const char* scope() const { return scope_; } |
uint64_t id() const { return id_; } |
uint64_t bind_id() const { return bind_id_; } |
+ TraceValue* arg_values() { return arg_values_; } |
+ const char** arg_names() { return arg_names_; } |
+ uint8_t* arg_types() { return arg_types_; } |
unsigned int flags() const { return flags_; } |
int64_t ts() { return ts_; } |
int64_t tts() { return tts_; } |
@@ -55,13 +72,15 @@ class TraceObject { |
const uint8_t* category_enabled_flag_; |
uint64_t id_; |
uint64_t bind_id_; |
- int num_args_; |
+ TraceValue arg_values_[kTraceMaxNumArgs]; |
+ const char* arg_names_[kTraceMaxNumArgs]; |
+ uint8_t arg_types_[kTraceMaxNumArgs]; |
+ char* parameter_copy_storage_ = nullptr; |
unsigned int flags_; |
int64_t ts_; |
int64_t tts_; |
uint64_t duration_; |
uint64_t cpu_duration_; |
- // TODO(fmeawad): Add args support. |
// Disallow copy and assign |
TraceObject(const TraceObject&) = delete; |
@@ -75,7 +94,8 @@ class TraceWriter { |
virtual void AppendTraceEvent(TraceObject* trace_event) = 0; |
virtual void Flush() = 0; |
- static TraceWriter* CreateJSONTraceWriter(std::ostream& stream); |
+ static TraceWriter* CreateJSONTraceWriter(Isolate* isolate, |
+ std::ostream& stream); |
private: |
// Disallow copy and assign |