LLDB mainline
Classes | Namespaces | Functions
LibiptDecoder.h File Reference
#include "DecodedThread.h"
#include "PerfContextSwitchDecoder.h"
#include "forward-declarations.h"
#include "intel-pt.h"
#include <optional>

Go to the source code of this file.


struct  lldb_private::trace_intel_pt::PSBBlock
 This struct represents a contiguous section of a trace that starts at a PSB and ends right before the next PSB or the end of the trace. More...
struct  lldb_private::trace_intel_pt::IntelPTThreadContinousExecution
 This struct represents a continuous execution of a thread in a cpu, delimited by a context switch in and out, and a list of Intel PT subtraces that belong to this execution. More...


namespace  lldb_private
 A class that represents a running process on the host machine.
namespace  lldb_private::trace_intel_pt


llvm::Error lldb_private::trace_intel_pt::DecodeSingleTraceForThread (DecodedThread &decoded_thread, TraceIntelPT &trace_intel_pt, llvm::ArrayRef< uint8_t > buffer)
 Decode a raw Intel PT trace for a single thread given in buffer and append the decoded instructions and errors in decoded_thread.
llvm::Error lldb_private::trace_intel_pt::DecodeSystemWideTraceForThread (DecodedThread &decoded_thread, TraceIntelPT &trace_intel_pt, const llvm::DenseMap< lldb::cpu_id_t, llvm::ArrayRef< uint8_t > > &buffers, const std::vector< IntelPTThreadContinousExecution > &executions)
 Decode a raw Intel PT trace for a single thread that was collected in a per cpu core basis.
llvm::Expected< std::vector< PSBBlock > > lldb_private::trace_intel_pt::SplitTraceIntoPSBBlock (TraceIntelPT &trace_intel_pt, llvm::ArrayRef< uint8_t > buffer, bool expect_tscs)
 Given an intel pt trace, split it in chunks delimited by PSB packets.
llvm::Expected< std::optional< uint64_t > > lldb_private::trace_intel_pt::FindLowestTSCInTrace (TraceIntelPT &trace_intel_pt, llvm::ArrayRef< uint8_t > buffer)
 Find the lowest TSC in the given trace.