9#ifndef LLDB_SOURCE_PLUGINS_TRACE_INTEL_PT_TRACEINTELPTJSONSTRUCTS_H
10#define LLDB_SOURCE_PLUGINS_TRACE_INTEL_PT_TRACEINTELPTJSONSTRUCTS_H
14#include "llvm/Support/JSON.h"
20namespace trace_intel_pt {
24 std::optional<std::string>
file;
26 std::optional<std::string>
uuid;
56 std::optional<std::vector<JSONCpu>>
cpus;
60 std::optional<std::vector<lldb::cpu_id_t>>
GetCpuIds();
71llvm::json::Value
toJSON(
const pt_cpu &cpu_info);
78 llvm::json::Path path);
81 llvm::json::Path path);
84 llvm::json::Path path);
87 llvm::json::Path path);
89bool fromJSON(
const llvm::json::Value &value, pt_cpu &cpu_info,
90 llvm::json::Path path);
93 llvm::json::Path path);
97 llvm::json::Path path);
bool fromJSON(const json::Value &value, JSONModule &module, Path path)
json::Value toJSON(const JSONModule &module)
A class that represents a running process on the host machine.
Helper structure to help parse long numbers that can't be easily represented by a JSON number that is...
std::string context_switch_trace
std::optional< JSONUINT64 > load_address
std::optional< std::string > uuid
std::optional< std::string > file
std::optional< std::string > triple
std::vector< JSONModule > modules
std::vector< JSONThread > threads
std::optional< std::string > ipt_trace
std::optional< std::vector< lldb::cpu_id_t > > GetCpuIds()
std::optional< std::vector< JSONCpu > > cpus
std::optional< LinuxPerfZeroTscConversion > tsc_perf_zero_conversion
std::optional< JSONKernel > kernel
std::optional< std::vector< JSONProcess > > processes