12#include "protos/perfetto/trace/track_event/debug_annotation.pbzero.h"
20#define DCHECK_CURRENT_CONTAINER_IS(x) DCHECK_EQ(x, nesting_stack_.back())
21#define DCHECK_CONTAINER_STACK_DEPTH_EQ(x) DCHECK_EQ(x, nesting_stack_.size())
23const bool kStackTypeDict =
false;
24const bool kStackTypeArray =
true;
25#define DEBUG_PUSH_CONTAINER(x) nesting_stack_.push_back(x)
26#define DEBUG_POP_CONTAINER() nesting_stack_.pop_back()
28#define DEBUG_PUSH_CONTAINER(x) ((void)0)
29#define DEBUG_POP_CONTAINER() ((void)0)
32void EscapeAndAppendString(
const char* value, std::string*
result) {
35 unsigned char c = *value++;
59 if (c <
'\x20' || c ==
'\x7F') {
60 char number_buffer[8];
61 base::OS::SNPrintF(number_buffer,
arraysize(number_buffer),
"\\u%04X",
62 static_cast<unsigned>(c));
76 return std::unique_ptr<TracedValue>(
new TracedValue());
92 data_ += std::to_string(value);
98 data_ += std::to_string(value);
111 data_ += value ?
"true" :
"false";
117 EscapeAndAppendString(value, &
data_);
124 value->AppendAsTraceFormat(&tmp);
147 data_ += std::to_string(value);
160 data_ += value ?
"true" :
"false";
166 EscapeAndAppendString(value, &
data_);
220#ifdef V8_USE_PERFETTO
221void TracedValue::Add(
222 perfetto::protos::pbzero::DebugAnnotation*
annotation)
const {
void SetInteger(const char *name, int value)
void SetValue(const char *name, TracedValue *value)
void AppendString(const char *)
void SetUnsignedInteger(const char *name, uint64_t value)
void WriteName(const char *name)
void SetBoolean(const char *name, bool value)
void AppendAsTraceFormat(std::string *out) const override
void AppendDouble(double)
void SetString(const char *name, const char *value)
void SetDouble(const char *name, double value)
static std::unique_ptr< TracedValue > Create()
ZoneVector< RpoNumber > & result
std::string_view DoubleToStringView(double v, base::Vector< char > buffer)
#define DEBUG_PUSH_CONTAINER(x)
#define DEBUG_POP_CONTAINER()
#define DCHECK_CONTAINER_STACK_DEPTH_EQ(x)
#define DCHECK_CURRENT_CONTAINER_IS(x)