//===-- SBTraceOptions ------------------------------------------*- 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_API_SBTRACEOPTIONS_H #define LLDB_API_SBTRACEOPTIONS_H #include "lldb/API/SBDefines.h" namespace lldb { class LLDB_API SBTraceOptions { public: SBTraceOptions(); lldb::TraceType getType() const; uint64_t getTraceBufferSize() const; /// The trace parameters consist of any custom parameters /// apart from the generic parameters such as /// TraceType, trace_buffer_size and meta_data_buffer_size. /// The returned parameters would be formatted as a JSON Dictionary. lldb::SBStructuredData getTraceParams(lldb::SBError &error); uint64_t getMetaDataBufferSize() const; /// SBStructuredData is meant to hold any custom parameters /// apart from meta buffer size and trace size. They should /// be formatted as a JSON Dictionary. void setTraceParams(lldb::SBStructuredData ¶ms); void setType(lldb::TraceType type); void setTraceBufferSize(uint64_t size); void setMetaDataBufferSize(uint64_t size); void setThreadID(lldb::tid_t thread_id); lldb::tid_t getThreadID(); explicit operator bool() const; bool IsValid(); protected: friend class SBProcess; friend class SBTrace; lldb::TraceOptionsSP m_traceoptions_sp; }; } #endif // LLDB_API_SBTRACEOPTIONS_H |