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.

Classes

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...
 

Namespaces

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

Functions

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.