9#ifndef LLDB_TARGET_INSTRUMENTATIONRUNTIME_H
10#define LLDB_TARGET_INSTRUMENTATIONRUNTIME_H
28 :
public std::enable_shared_from_this<InstrumentationRuntime>,
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.
void SetBreakpointID(lldb::user_id_t ID)
void SetActive(bool IsActive)
virtual lldb::ThreadCollectionSP GetBacktracesFromExtendedStopInfo(StructuredData::ObjectSP info)
void SetRuntimeModuleSP(lldb::ModuleSP module_sp)
lldb::user_id_t GetBreakpointID() const
virtual void Activate()=0
Register a breakpoint in the runtime library and perform any other necessary initialization.
virtual bool CheckIfRuntimeIsValid(const lldb::ModuleSP module_sp)=0
Check whether module_sp corresponds to a valid runtime library.
virtual const RegularExpression & GetPatternForRuntimeLibrary()=0
Return a regular expression which can be used to identify a valid version of the runtime library.
InstrumentationRuntime(const lldb::ProcessSP &process_sp)
bool m_is_active
Indicates whether or not breakpoints have been registered in the instrumentation runtime.
static void ModulesDidLoad(lldb_private::ModuleList &module_list, Process *process, InstrumentationRuntimeCollection &runtimes)
lldb::ModuleSP GetRuntimeModuleSP()
lldb::ProcessSP GetProcessSP()
A collection class for Module objects.
A plug-in interface definition class for debugging a process.
std::shared_ptr< Object > ObjectSP
A class that represents a running process on the host machine.
std::map< lldb::InstrumentationRuntimeType, lldb::InstrumentationRuntimeSP > InstrumentationRuntimeCollection
std::shared_ptr< lldb_private::Process > ProcessSP
InstrumentationRuntimeType
std::weak_ptr< lldb_private::Process > ProcessWP
std::shared_ptr< lldb_private::InstrumentationRuntime > InstrumentationRuntimeSP
std::shared_ptr< lldb_private::Module > ModuleSP
std::shared_ptr< lldb_private::ThreadCollection > ThreadCollectionSP