//===-- TraceIntelPTGDBRemotePackets.h --------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_UTILITY_TRACEINTELPTGDBREMOTEPACKETS_H #define LLDB_UTILITY_TRACEINTELPTGDBREMOTEPACKETS_H #include "lldb/Utility/TraceGDBRemotePackets.h" /// See docs/lldb-gdb-remote.txt for more information. namespace lldb_private { /// jLLDBTraceStart gdb-remote packet /// \{ struct TraceIntelPTStartRequest : TraceStartRequest { /// Size in bytes to use for each thread's trace buffer. int64_t threadBufferSize; /// Whether to enable TSC bool enableTsc; /// PSB packet period llvm::Optional psbPeriod; /// Required when doing "process tracing". /// /// Limit in bytes on all the thread traces started by this "process trace" /// instance. When a thread is about to be traced and the limit would be hit, /// then a "tracing" stop event is triggered. llvm::Optional processBufferSizeLimit; }; bool fromJSON(const llvm::json::Value &value, TraceIntelPTStartRequest &packet, llvm::json::Path path); llvm::json::Value toJSON(const TraceIntelPTStartRequest &packet); /// \} } // namespace lldb_private #endif // LLDB_UTILITY_TRACEINTELPTGDBREMOTEPACKETS_H