Chromium Code Reviews| 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 |