Go to the documentation of this file.
9 #ifndef liblldb_IntelPTCollector_H_
10 #define liblldb_IntelPTCollector_H_
20 #include <linux/perf_event.h>
26 namespace process_linux {
57 llvm::Expected<llvm::json::Value>
GetState();
60 llvm::Expected<std::vector<uint8_t>>
75 llvm::Expected<LinuxPerfZeroTscConversion &>
91 #endif // liblldb_IntelPTCollector_H_
static bool IsSupported()
jLLDBTraceGetBinaryData gdb-remote packet
llvm::Error TraceStop(const TraceStopRequest &request)
Implementation of the jLLDBTraceStop packet.
NativeProcessProtocol & m_process
The target process.
Manages a list of thread traces.
llvm::Expected< std::vector< uint8_t > > GetBinaryData(const TraceGetBinaryDataRequest &request)
Implementation of the jLLDBTraceGetBinaryData packet.
IntelPTCollector(NativeProcessProtocol &process)
void Clear()
Dispose of all traces.
llvm::Error TraceStart(const TraceIntelPTStartRequest &request)
Implementation of the jLLDBTraceStart packet.
Main class that manages intel-pt process and thread tracing.
llvm::Error OnThreadCreated(lldb::tid_t tid)
If "process tracing" is enabled, then trace the given thread.
jLLDBTraceStart gdb-remote packet
void ProcessWillResume()
To be invoked before the process will resume, so that we can capture the first instructions after the...
jLLDBTraceStop gdb-remote packet
llvm::Error OnThreadDestroyed(lldb::tid_t tid)
Stops tracing a tracing upon a destroy event.
IntelPTThreadTraceCollection m_thread_traces
Threads traced due to "thread tracing".
A class that represents a running process on the host machine.
void ProcessDidStop()
To be invoked as soon as we know the process stopped.
std::unique_ptr< IntelPTProcessTrace > IntelPTProcessTraceUP
llvm::Expected< llvm::json::Value > GetState()
Implementation of the jLLDBTraceGetState packet.
IntelPTProcessTraceUP m_process_trace_up
Only one instance of "process trace" can be active at a given time.
llvm::Expected< LinuxPerfZeroTscConversion & > FetchPerfTscConversionParameters()