LLDB mainline
lldb_private::CPPLanguageRuntime Class Reference

#include <CPPLanguageRuntime.h>

Inheritance diagram for lldb_private::CPPLanguageRuntime:
[legend]

Classes

struct  LibCppStdFunctionCallableInfo

Public Types

enum class  LibCppStdFunctionCallableCase { Lambda = 0 , CallableObject , FreeOrMemberFunction , Invalid }

Public Member Functions

LibCppStdFunctionCallableInfo FindLibCppStdFunctionCallableInfo (lldb::ValueObjectSP &valobj_sp)
bool isA (const void *ClassID) const override
lldb::LanguageType GetLanguageType () const override
llvm::Error GetObjectDescription (Stream &str, ValueObject &object) override
llvm::Error GetObjectDescription (Stream &str, Value &value, ExecutionContextScope *exe_scope) override
lldb::ThreadPlanSP GetStepThroughTrampolinePlan (Thread &thread, bool stop_others) override
 Obtain a ThreadPlan to get us into C++ constructs such as std::function.
bool IsAllowedRuntimeValue (ConstString name) override
 Identify whether a name is a runtime value that should not be hidden by from the user interface.
bool IsSymbolARuntimeThunk (const Symbol &symbol) override
Public Member Functions inherited from lldb_private::LanguageRuntime
virtual LanguageRuntimeGetPreferredLanguageRuntime (ValueObject &in_value)
 Return the preferred language runtime instance, which in most cases will be the current instance.
virtual llvm::Expected< VTableInfoGetVTableInfo (ValueObject &in_value, bool check_type)
 Get the vtable information for a given value.
virtual bool GetDynamicTypeAndAddress (ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type, llvm::ArrayRef< uint8_t > &local_buffer)=0
 This call should return true if it could set the name and/or the type Sets address to the address of the dynamic type if value_type is set to a file or load address.
virtual CompilerType GetConcreteType (ExecutionContextScope *exe_scope, ConstString abstract_type_name)
virtual bool CouldHaveDynamicValue (ValueObject &in_value)=0
virtual TypeAndOrName FixUpDynamicType (const TypeAndOrName &type_and_or_name, ValueObject &static_value)=0
virtual void SetExceptionBreakpoints ()
virtual void ClearExceptionBreakpoints ()
virtual bool ExceptionBreakpointsAreSet ()
virtual bool ExceptionBreakpointsExplainStop (lldb::StopInfoSP stop_reason)
virtual lldb::ValueObjectSP GetExceptionObjectForThread (lldb::ThreadSP thread_sp)
virtual lldb::ThreadSP GetBacktraceThreadFromException (lldb::ValueObjectSP thread_sp)
virtual DeclVendorGetDeclVendor ()
virtual lldb::BreakpointResolverSP CreateExceptionResolver (const lldb::BreakpointSP &bkpt, bool catch_bp, bool throw_bp)=0
virtual lldb::SearchFilterSP CreateExceptionSearchFilter ()
virtual std::optional< uint64_t > GetTypeBitSize (const CompilerType &compiler_type)
virtual void SymbolsDidLoad (const ModuleList &module_list)
virtual std::optional< CompilerTypeGetRuntimeType (CompilerType base_type)
void ModulesDidLoad (const ModuleList &module_list) override
 Called when modules have been loaded in the process.
virtual bool GetIRPasses (LLVMUserExpression::IRPasses &custom_passes)
virtual lldb::addr_t LookupRuntimeSymbol (ConstString name)
virtual StructuredData::ObjectSP GetLanguageSpecificData (SymbolContext sc)
 Language runtime plugins can use this API to report language-specific runtime information about this compile unit, such as additional language version details or feature flags.
Public Member Functions inherited from lldb_private::Runtime
 Runtime (Process *process)
virtual ~Runtime ()=default
 Runtime (const Runtime &)=delete
const Runtimeoperator= (const Runtime &)=delete
ProcessGetProcess ()
TargetGetTargetRef ()
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 bool classof (const LanguageRuntime *runtime)
static CPPLanguageRuntimeGet (Process &process)
Static Public Member Functions inherited from lldb_private::LanguageRuntime
static LanguageRuntimeFindPlugin (Process *process, lldb::LanguageType language)
static void InitializeCommands (CommandObject *parent)
static lldb::BreakpointSP CreateExceptionBreakpoint (Target &target, lldb::LanguageType language, bool catch_bp, bool throw_bp, bool is_internal=false)
static lldb::BreakpointPreconditionSP GetExceptionPrecondition (lldb::LanguageType language, bool throw_bp)
static lldb::UnwindPlanSP GetRuntimeUnwindPlan (lldb_private::Thread &thread, lldb_private::RegisterContext *regctx, bool &behaves_like_zeroth_frame)
 A language runtime may be able to provide a special UnwindPlan for the frame represented by the register contents regctx when that frame is not following the normal ABI conventions.

Static Public Attributes

static char ID = 0
Static Public Attributes inherited from lldb_private::LanguageRuntime
static char ID = 0

Protected Member Functions

 CPPLanguageRuntime (Process *process)
Protected Member Functions inherited from lldb_private::LanguageRuntime
virtual lldb::UnwindPlanSP GetRuntimeUnwindPlan (lldb::ProcessSP process_sp, lldb_private::RegisterContext *regctx, bool &behaves_like_zeroth_frame)
 LanguageRuntime (Process *process)

Private Types

using OperatorStringToCallableInfoMap

Private Attributes

OperatorStringToCallableInfoMap CallableLookupCache

Additional Inherited Members

Protected Attributes inherited from lldb_private::Runtime
Processm_process

Detailed Description

Definition at line 22 of file CPPLanguageRuntime.h.

Member Typedef Documentation

◆ OperatorStringToCallableInfoMap

Initial value:
llvm::StringMap<CPPLanguageRuntime::LibCppStdFunctionCallableInfo>

Definition at line 89 of file CPPLanguageRuntime.h.

Member Enumeration Documentation

◆ LibCppStdFunctionCallableCase

Enumerator
Lambda 
CallableObject 
FreeOrMemberFunction 
Invalid 

Definition at line 24 of file CPPLanguageRuntime.h.

Constructor & Destructor Documentation

◆ CPPLanguageRuntime()

Member Function Documentation

◆ classof()

bool lldb_private::CPPLanguageRuntime::classof ( const LanguageRuntime * runtime)
inlinestatic

◆ FindLibCppStdFunctionCallableInfo()

◆ Get()

CPPLanguageRuntime * lldb_private::CPPLanguageRuntime::Get ( Process & process)
inlinestatic

◆ GetLanguageType()

lldb::LanguageType lldb_private::CPPLanguageRuntime::GetLanguageType ( ) const
inlineoverridevirtual

Implements lldb_private::LanguageRuntime.

Definition at line 53 of file CPPLanguageRuntime.h.

References lldb::eLanguageTypeC_plus_plus.

◆ GetObjectDescription() [1/2]

llvm::Error CPPLanguageRuntime::GetObjectDescription ( Stream & str,
Value & value,
ExecutionContextScope * exe_scope )
overridevirtual

Implements lldb_private::LanguageRuntime.

Definition at line 129 of file CPPLanguageRuntime.cpp.

◆ GetObjectDescription() [2/2]

llvm::Error CPPLanguageRuntime::GetObjectDescription ( Stream & str,
ValueObject & object )
overridevirtual

Implements lldb_private::LanguageRuntime.

Definition at line 122 of file CPPLanguageRuntime.cpp.

◆ GetStepThroughTrampolinePlan()

lldb::ThreadPlanSP CPPLanguageRuntime::GetStepThroughTrampolinePlan ( Thread & thread,
bool stop_others )
overridevirtual

◆ isA()

bool lldb_private::CPPLanguageRuntime::isA ( const void * ClassID) const
inlineoverridevirtual

◆ IsAllowedRuntimeValue()

bool CPPLanguageRuntime::IsAllowedRuntimeValue ( ConstString name)
overridevirtual

Identify whether a name is a runtime value that should not be hidden by from the user interface.

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 118 of file CPPLanguageRuntime.cpp.

References g_coro_frame, g_promise, and g_this.

◆ IsSymbolARuntimeThunk()

bool CPPLanguageRuntime::IsSymbolARuntimeThunk ( const Symbol & symbol)
overridevirtual

Member Data Documentation

◆ CallableLookupCache

OperatorStringToCallableInfoMap lldb_private::CPPLanguageRuntime::CallableLookupCache
private

Definition at line 92 of file CPPLanguageRuntime.h.

Referenced by FindLibCppStdFunctionCallableInfo().

◆ ID

char CPPLanguageRuntime::ID = 0
static

Definition at line 43 of file CPPLanguageRuntime.h.

Referenced by classof(), and isA().


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