5#ifndef V8_LIBPLATFORM_V8_TRACING_H_
6#define V8_LIBPLATFORM_V8_TRACING_H_
10#include <unordered_set>
41 char phase,
const uint8_t* category_enabled_flag,
const char* name,
42 const char* scope, uint64_t
id, uint64_t bind_id,
int num_args,
43 const char** arg_names,
const uint8_t* arg_types,
44 const uint64_t* arg_values,
45 std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
49 char phase,
const uint8_t* category_enabled_flag,
const char* name,
50 const char* scope, uint64_t
id, uint64_t bind_id,
int num_args,
51 const char** arg_names,
const uint8_t* arg_types,
52 const uint64_t* arg_values,
53 std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
54 unsigned int flags,
int pid,
int tid, int64_t ts, int64_t tts,
55 uint64_t duration, uint64_t cpu_duration);
57 int pid()
const {
return pid_; }
58 int tid()
const {
return tid_; }
59 char phase()
const {
return phase_; }
61 return category_enabled_flag_;
63 const char*
name()
const {
return name_; }
64 const char*
scope()
const {
return scope_; }
65 uint64_t
id()
const {
return id_; }
66 uint64_t
bind_id()
const {
return bind_id_; }
72 return arg_convertables_;
74 unsigned int flags()
const {
return flags_; }
75 int64_t
ts() {
return ts_; }
76 int64_t
tts() {
return tts_; }
86 const uint8_t* category_enabled_flag_;
93 std::unique_ptr<v8::ConvertableToTraceFormat>
95 char* parameter_copy_storage_ =
nullptr;
100 uint64_t cpu_duration_;
127 bool IsFull()
const {
return next_free_ == kChunkSize; }
131 uint32_t
seq()
const {
return seq_; }
132 size_t size()
const {
return next_free_; }
134 static const size_t kChunkSize = 64;
137 size_t next_free_ = 0;
155 static const size_t kRingBufferChunks = 1024;
188 TraceConfig() : enable_systrace_(false), enable_argument_filter_(false) {}
203 bool enable_systrace_ : 1;
204 bool enable_argument_filter_ : 1;
213#define V8_PLATFORM_NON_EXPORTED_BASE(code) \
214 __pragma(warning(suppress : 4275)) code
216#define V8_PLATFORM_NON_EXPORTED_BASE(code) code
222 enum Mode { DISABLED = 0, RECORDING_MODE };
230 ENABLED_FOR_RECORDING = 1 << 0,
232 ENABLED_FOR_EVENT_CALLBACK = 1 << 2,
234 ENABLED_FOR_ETW_EXPORT = 1 << 3
244 char phase,
const uint8_t* category_enabled_flag,
const char* name,
245 const char* scope, uint64_t
id, uint64_t bind_id, int32_t num_args,
246 const char** arg_names,
const uint8_t* arg_types,
247 const uint64_t* arg_values,
248 std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
249 unsigned int flags)
override;
251 const char* name, uint64_t handle)
override;
263 const uint8_t* GetCategoryGroupEnabledInternal(
const char* category_group);
264 void UpdateCategoryGroupEnabledFlag(
size_t category_index);
265 void UpdateCategoryGroupEnabledFlags();
267 std::unique_ptr<TraceBuffer> trace_buffer_;
268 std::unique_ptr<TraceConfig> trace_config_;
269 std::unique_ptr<base::Mutex> mutex_;
270 std::unordered_set<v8::TracingController::TraceStateObserver*> observers_;
271 Mode mode_ = DISABLED;
278#undef V8_PLATFORM_NON_EXPORTED_BASE
Definition: v8-platform.h:101
Definition: libplatform.h:12
#define V8_PLATFORM_NON_EXPORTED_BASE(code)
Definition: v8-tracing.h:216