9#ifndef LLDB_SOURCE_PLUGINS_TRACE_INTEL_PT_TRACEINTELPTMULTICPUDECODER_H
10#define LLDB_SOURCE_PLUGINS_TRACE_INTEL_PT_TRACEINTELPTMULTICPUDECODER_H
19namespace trace_intel_pt {
89 llvm::DenseMap<lldb::tid_t, std::vector<IntelPTThreadContinousExecution>>>
97 llvm::DenseMap<lldb::tid_t, std::vector<IntelPTThreadContinousExecution>>>
Class used to decode a multi-cpu Intel PT trace.
llvm::Expected< llvm::DenseMap< lldb::tid_t, std::vector< IntelPTThreadContinousExecution > > > DoCorrelateContextSwitchesAndIntelPtTraces()
Produce a mapping from thread ids to the list of continuos executions with their associated intel pt ...
std::set< lldb::tid_t > m_tids
llvm::Expected< DecodedThreadSP > Decode(Thread &thread)
llvm::DenseMap< lldb::tid_t, DecodedThreadSP > m_decoded_threads
uint64_t m_unattributed_psb_blocks
uint64_t m_total_psb_blocks
size_t GetTotalContinuousExecutionsCount() const
size_t GetUnattributedPSBBlocksCount() const
llvm::Expected< std::optional< uint64_t > > FindLowestTSC()
size_t GePSBBlocksCountForThread(lldb::tid_t tid) const
size_t GetNumContinuousExecutionsForThread(lldb::tid_t tid) const
size_t GetTotalPSBBlocksCount() const
std::optional< std::string > m_setup_error
This variable will not be std::nullopt if a severe error happened during the setup of the decoder and...
TraceIntelPTSP GetTrace()
llvm::Error CorrelateContextSwitchesAndIntelPtTraces()
Traverse the context switch traces and the basic intel pt continuous subtraces and produce a list of ...
std::weak_ptr< TraceIntelPT > m_trace_wp
bool TracesThread(lldb::tid_t tid) const
std::optional< llvm::DenseMap< lldb::tid_t, std::vector< IntelPTThreadContinousExecution > > > m_continuous_executions_per_thread
std::shared_ptr< TraceIntelPT > TraceIntelPTSP
A class that represents a running process on the host machine.