LLDB mainline
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
lldb_private::InstrumentationRuntime Class Referenceabstract

#include <InstrumentationRuntime.h>

Inheritance diagram for lldb_private::InstrumentationRuntime:
Inheritance graph
[legend]

Public Member Functions

void ModulesDidLoad (lldb_private::ModuleList &module_list)
 Look for the instrumentation runtime in module_list.
 
bool IsActive () const
 
virtual lldb::ThreadCollectionSP GetBacktracesFromExtendedStopInfo (StructuredData::ObjectSP info)
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
virtual llvm::StringRef GetPluginName ()=0
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

static void ModulesDidLoad (lldb_private::ModuleList &module_list, Process *process, InstrumentationRuntimeCollection &runtimes)
 

Protected Member Functions

 InstrumentationRuntime (const lldb::ProcessSP &process_sp)
 
lldb::ProcessSP GetProcessSP ()
 
lldb::ModuleSP GetRuntimeModuleSP ()
 
void SetRuntimeModuleSP (lldb::ModuleSP module_sp)
 
lldb::user_id_t GetBreakpointID () const
 
void SetBreakpointID (lldb::user_id_t ID)
 
void SetActive (bool IsActive)
 
virtual const RegularExpressionGetPatternForRuntimeLibrary ()=0
 Return a regular expression which can be used to identify a valid version of the runtime library.
 
virtual bool CheckIfRuntimeIsValid (const lldb::ModuleSP module_sp)=0
 Check whether module_sp corresponds to a valid runtime library.
 
virtual void Activate ()=0
 Register a breakpoint in the runtime library and perform any other necessary initialization.
 

Private Attributes

lldb::ProcessWP m_process_wp
 The instrumented process.
 
lldb::ModuleSP m_runtime_module
 The module containing the instrumentation runtime.
 
lldb::user_id_t m_breakpoint_id
 The breakpoint in the instrumentation runtime.
 
bool m_is_active
 Indicates whether or not breakpoints have been registered in the instrumentation runtime.
 

Detailed Description

Definition at line 27 of file InstrumentationRuntime.h.

Constructor & Destructor Documentation

◆ InstrumentationRuntime()

lldb_private::InstrumentationRuntime::InstrumentationRuntime ( const lldb::ProcessSP process_sp)
inlineprotected

Definition at line 44 of file InstrumentationRuntime.h.

References m_process_wp.

Member Function Documentation

◆ Activate()

virtual void lldb_private::InstrumentationRuntime::Activate ( )
protectedpure virtual

Register a breakpoint in the runtime library and perform any other necessary initialization.

The runtime library is guaranteed to be loaded.

Implemented in lldb_private::InstrumentationRuntimeASan, InstrumentationRuntimeASanLibsanitizers, lldb_private::InstrumentationRuntimeMainThreadChecker, lldb_private::InstrumentationRuntimeTSan, and lldb_private::InstrumentationRuntimeUBSan.

Referenced by ModulesDidLoad().

◆ CheckIfRuntimeIsValid()

virtual bool lldb_private::InstrumentationRuntime::CheckIfRuntimeIsValid ( const lldb::ModuleSP  module_sp)
protectedpure virtual

◆ GetBacktracesFromExtendedStopInfo()

lldb::ThreadCollectionSP InstrumentationRuntime::GetBacktracesFromExtendedStopInfo ( StructuredData::ObjectSP  info)
virtual

◆ GetBreakpointID()

lldb::user_id_t lldb_private::InstrumentationRuntime::GetBreakpointID ( ) const
inlineprotected

◆ GetPatternForRuntimeLibrary()

virtual const RegularExpression & lldb_private::InstrumentationRuntime::GetPatternForRuntimeLibrary ( )
protectedpure virtual

◆ GetProcessSP()

lldb::ProcessSP lldb_private::InstrumentationRuntime::GetProcessSP ( )
inlineprotected

Definition at line 50 of file InstrumentationRuntime.h.

References m_process_wp.

Referenced by lldb_private::InstrumentationRuntimeASan::Activate(), InstrumentationRuntimeASanLibsanitizers::Activate(), lldb_private::InstrumentationRuntimeMainThreadChecker::Activate(), lldb_private::InstrumentationRuntimeTSan::Activate(), lldb_private::InstrumentationRuntimeUBSan::Activate(), lldb_private::InstrumentationRuntimeASan::Deactivate(), InstrumentationRuntimeASanLibsanitizers::Deactivate(), lldb_private::InstrumentationRuntimeMainThreadChecker::Deactivate(), lldb_private::InstrumentationRuntimeTSan::Deactivate(), lldb_private::InstrumentationRuntimeUBSan::Deactivate(), lldb_private::InstrumentationRuntimeTSan::GenerateSummary(), lldb_private::InstrumentationRuntimeMainThreadChecker::GetBacktracesFromExtendedStopInfo(), lldb_private::InstrumentationRuntimeTSan::GetBacktracesFromExtendedStopInfo(), lldb_private::InstrumentationRuntimeUBSan::GetBacktracesFromExtendedStopInfo(), lldb_private::InstrumentationRuntimeTSan::GetFirstNonInternalFramePc(), lldb_private::InstrumentationRuntimeTSan::GetLocationDescription(), InstrumentationRuntimeASanLibsanitizers::NotifyBreakpointHit(), lldb_private::InstrumentationRuntimeASan::NotifyBreakpointHit(), lldb_private::InstrumentationRuntimeMainThreadChecker::NotifyBreakpointHit(), lldb_private::InstrumentationRuntimeTSan::NotifyBreakpointHit(), lldb_private::InstrumentationRuntimeUBSan::NotifyBreakpointHit(), lldb_private::InstrumentationRuntimeMainThreadChecker::RetrieveReportData(), lldb_private::InstrumentationRuntimeTSan::RetrieveReportData(), and lldb_private::InstrumentationRuntimeUBSan::RetrieveReportData().

◆ GetRuntimeModuleSP()

lldb::ModuleSP lldb_private::InstrumentationRuntime::GetRuntimeModuleSP ( )
inlineprotected

◆ IsActive()

bool lldb_private::InstrumentationRuntime::IsActive ( ) const
inline

◆ ModulesDidLoad() [1/2]

void InstrumentationRuntime::ModulesDidLoad ( lldb_private::ModuleList module_list)

◆ ModulesDidLoad() [2/2]

void InstrumentationRuntime::ModulesDidLoad ( lldb_private::ModuleList module_list,
lldb_private::Process process,
InstrumentationRuntimeCollection runtimes 
)
static

◆ SetActive()

void lldb_private::InstrumentationRuntime::SetActive ( bool  IsActive)
inlineprotected

◆ SetBreakpointID()

void lldb_private::InstrumentationRuntime::SetBreakpointID ( lldb::user_id_t  ID)
inlineprotected

◆ SetRuntimeModuleSP()

void lldb_private::InstrumentationRuntime::SetRuntimeModuleSP ( lldb::ModuleSP  module_sp)
inlineprotected

Definition at line 54 of file InstrumentationRuntime.h.

References m_runtime_module.

Referenced by ModulesDidLoad().

Member Data Documentation

◆ m_breakpoint_id

lldb::user_id_t lldb_private::InstrumentationRuntime::m_breakpoint_id
private

The breakpoint in the instrumentation runtime.

Definition at line 37 of file InstrumentationRuntime.h.

Referenced by GetBreakpointID(), and SetBreakpointID().

◆ m_is_active

bool lldb_private::InstrumentationRuntime::m_is_active
private

Indicates whether or not breakpoints have been registered in the instrumentation runtime.

Definition at line 41 of file InstrumentationRuntime.h.

Referenced by IsActive(), and SetActive().

◆ m_process_wp

lldb::ProcessWP lldb_private::InstrumentationRuntime::m_process_wp
private

The instrumented process.

Definition at line 31 of file InstrumentationRuntime.h.

Referenced by GetProcessSP(), and InstrumentationRuntime().

◆ m_runtime_module

lldb::ModuleSP lldb_private::InstrumentationRuntime::m_runtime_module
private

The module containing the instrumentation runtime.

Definition at line 34 of file InstrumentationRuntime.h.

Referenced by GetRuntimeModuleSP(), and SetRuntimeModuleSP().


The documentation for this class was generated from the following files: