LLDB  mainline
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
lldb_private::CPPLanguageRuntime Class Referenceabstract

#include <CPPLanguageRuntime.h>

Inheritance diagram for lldb_private::CPPLanguageRuntime:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::CPPLanguageRuntime:
Collaboration graph
[legend]

Classes

struct  LibCppStdFunctionCallableInfo
 

Public Types

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

Public Member Functions

LibCppStdFunctionCallableInfo FindLibCppStdFunctionCallableInfo (lldb::ValueObjectSP &valobj_sp)
 
 ~CPPLanguageRuntime () override
 
lldb::LanguageType GetLanguageType () const override
 
virtual bool IsVTableName (const char *name)=0
 
bool GetObjectDescription (Stream &str, ValueObject &object) override
 
bool GetObjectDescription (Stream &str, Value &value, ExecutionContextScope *exe_scope) override
 
lldb::ThreadPlanSP GetStepThroughTrampolinePlan (Thread &thread, bool stop_others)
 Obtain a ThreadPlan to get us into C++ constructs such as std::function. More...
 
bool IsRuntimeSupportValue (ValueObject &valobj) override
 Identify whether a value is a language implementation detaul that should be hidden from the user interface by default. More...
 
- Public Member Functions inherited from lldb_private::LanguageRuntime
 ~LanguageRuntime () override
 
virtual bool GetDynamicTypeAndAddress (ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type)=0
 
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)
 
ProcessGetProcess ()
 
TargetGetTargetRef ()
 
virtual lldb::BreakpointResolverSP CreateExceptionResolver (Breakpoint *bkpt, bool catch_bp, bool throw_bp)=0
 
virtual lldb::SearchFilterSP CreateExceptionSearchFilter ()
 
virtual bool GetTypeBitSize (const CompilerType &compiler_type, uint64_t &size)
 
virtual void ModulesDidLoad (const ModuleList &module_list)
 
virtual bool GetOverrideExprOptions (clang::TargetOptions &prototype)
 
virtual bool GetIRPasses (LLVMUserExpression::IRPasses &custom_passes)
 
- Public Member Functions inherited from lldb_private::PluginInterface
virtual ~PluginInterface ()
 
virtual ConstString GetPluginName ()=0
 
virtual uint32_t GetPluginVersion ()=0
 

Protected Member Functions

 CPPLanguageRuntime (Process *process)
 
- Protected Member Functions inherited from lldb_private::LanguageRuntime
 LanguageRuntime (Process *process)
 

Additional Inherited Members

- 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 Breakpoint::BreakpointPreconditionSP CreateExceptionPrecondition (lldb::LanguageType language, bool catch_bp, bool throw_bp)
 
- Protected Attributes inherited from lldb_private::LanguageRuntime
Processm_process
 

Detailed Description

Definition at line 19 of file CPPLanguageRuntime.h.

Member Enumeration Documentation

◆ LibCppStdFunctionCallableCase

Enumerator
Lambda 
CallableObject 
FreeOrMemberFunction 
Invalid 

Definition at line 21 of file CPPLanguageRuntime.h.

Constructor & Destructor Documentation

◆ ~CPPLanguageRuntime()

CPPLanguageRuntime::~CPPLanguageRuntime ( )
override

Definition at line 39 of file CPPLanguageRuntime.cpp.

◆ CPPLanguageRuntime()

CPPLanguageRuntime::CPPLanguageRuntime ( Process process)
protected

Definition at line 41 of file CPPLanguageRuntime.cpp.

Referenced by GetLanguageType().

Member Function Documentation

◆ FindLibCppStdFunctionCallableInfo()

CPPLanguageRuntime::LibCppStdFunctionCallableInfo CPPLanguageRuntime::FindLibCppStdFunctionCallableInfo ( lldb::ValueObjectSP &  valobj_sp)

◆ GetLanguageType()

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

◆ GetObjectDescription() [1/2]

bool CPPLanguageRuntime::GetObjectDescription ( Stream str,
ValueObject object 
)
overridevirtual

Implements lldb_private::LanguageRuntime.

Definition at line 60 of file CPPLanguageRuntime.cpp.

Referenced by GetLanguageType().

◆ GetObjectDescription() [2/2]

bool CPPLanguageRuntime::GetObjectDescription ( Stream str,
Value value,
ExecutionContextScope exe_scope 
)
overridevirtual

Implements lldb_private::LanguageRuntime.

Definition at line 66 of file CPPLanguageRuntime.cpp.

◆ GetStepThroughTrampolinePlan()

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

◆ IsRuntimeSupportValue()

bool CPPLanguageRuntime::IsRuntimeSupportValue ( ValueObject valobj)
overridevirtual

Identify whether a value is a language implementation detaul that should be hidden from the user interface by default.

Reimplemented from lldb_private::LanguageRuntime.

Definition at line 44 of file CPPLanguageRuntime.cpp.

References lldb_private::ValueObject::GetName(), lldb_private::ValueObject::GetVariable(), and lldb_private::ObjCLanguageRuntime::IsWhitelistedRuntimeValue().

Referenced by GetLanguageType().

◆ IsVTableName()

virtual bool lldb_private::CPPLanguageRuntime::IsVTableName ( const char *  name)
pure virtual

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