9#ifndef liblldb_IntelPTPerThreadTraceCollection_H_
10#define liblldb_IntelPTPerThreadTraceCollection_H_
16namespace process_linux {
65 llvm::Expected<std::optional<std::vector<uint8_t>>>
This class wraps a single perf event collecting intel pt data in a single buffer.
Manages a list of thread traces.
size_t GetTotalBufferSize() const
llvm::DenseMap< lldb::tid_t, IntelPTSingleBufferTrace > m_thread_traces
llvm::Error TraceStop(lldb::tid_t tid)
Stop tracing the thread given by its tid.
size_t GetTracedThreadsCount() const
llvm::Error TraceStart(lldb::tid_t tid, const TraceIntelPTStartRequest &request)
Start tracing the thread given by its tid.
size_t m_total_buffer_size
Total actual thread buffer size in bytes.
void Clear()
Dispose of all traces.
IntelPTThreadTraceCollection()
llvm::Expected< IntelPTSingleBufferTrace & > GetTracedThread(lldb::tid_t tid)
bool TracesThread(lldb::tid_t tid) const
llvm::Expected< std::optional< std::vector< uint8_t > > > TryGetBinaryData(const TraceGetBinaryDataRequest &request)
void ForEachThread(std::function< void(lldb::tid_t tid, IntelPTSingleBufferTrace &thread_trace)> callback)
Execute the provided callback on each thread that is being traced.
A class that represents a running process on the host machine.
jLLDBTraceGetBinaryData gdb-remote packet
jLLDBTraceStart gdb-remote packet