LLDB mainline
lldb_private::CommonABIRuntime Class Referenceabstract

#include <CommonABIRuntime.h>

Inheritance diagram for lldb_private::CommonABIRuntime:
[legend]

Public Member Functions

virtual ~CommonABIRuntime ()=default
virtual llvm::StringRef GetName () const =0
virtual bool IsVTableSymbol (Mangled &mangled) const
virtual bool GetDynamicTypeAndAddress (ValueObject &in_value, lldb::DynamicValueType use_dynamic, const LanguageRuntime::VTableInfo &vtable_info, TypeAndOrName &class_type_or_name, Address &dynamic_address)
virtual void AppendExceptionBreakpointFunctions (std::vector< const char * > &names, bool catch_bp, bool throw_bp, bool for_expressions)
virtual void AppendExceptionBreakpointFilterModules (FileSpecList &list, const Target &target)
virtual lldb::ValueObjectSP GetExceptionObjectForThread (lldb::ThreadSP thread_sp)

Protected Member Functions

 CommonABIRuntime (Process *process)
lldb::TypeSP LookupTypeByName (llvm::StringRef type_name, lldb::ModuleSP preferred_module, bool &any_found) const
 Find a type by its name, preferably in preferred_module.
TypeAndOrName GetDynamicTypeInfo (const lldb_private::Address &vtable_addr)
void SetDynamicTypeInfo (const lldb_private::Address &vtable_addr, const TypeAndOrName &type_info)

Protected Attributes

Processm_process
std::mutex m_mutex

Private Types

using DynamicTypeCache = std::map<Address, TypeAndOrName>

Private Attributes

DynamicTypeCache m_dynamic_type_map

Detailed Description

Definition at line 21 of file CommonABIRuntime.h.

Member Typedef Documentation

◆ DynamicTypeCache

Definition at line 71 of file CommonABIRuntime.h.

Constructor & Destructor Documentation

◆ ~CommonABIRuntime()

virtual lldb_private::CommonABIRuntime::~CommonABIRuntime ( )
virtualdefault

◆ CommonABIRuntime()

CommonABIRuntime::CommonABIRuntime ( Process * process)
protected

Definition at line 18 of file CommonABIRuntime.cpp.

References m_process.

Referenced by lldb_private::ItaniumABIRuntime::ItaniumABIRuntime().

Member Function Documentation

◆ AppendExceptionBreakpointFilterModules()

virtual void lldb_private::CommonABIRuntime::AppendExceptionBreakpointFilterModules ( FileSpecList & list,
const Target & target )
inlinevirtual

Reimplemented in lldb_private::ItaniumABIRuntime.

Definition at line 41 of file CommonABIRuntime.h.

◆ AppendExceptionBreakpointFunctions()

virtual void lldb_private::CommonABIRuntime::AppendExceptionBreakpointFunctions ( std::vector< const char * > & names,
bool catch_bp,
bool throw_bp,
bool for_expressions )
inlinevirtual

Reimplemented in lldb_private::ItaniumABIRuntime.

Definition at line 37 of file CommonABIRuntime.h.

◆ GetDynamicTypeAndAddress()

virtual bool lldb_private::CommonABIRuntime::GetDynamicTypeAndAddress ( ValueObject & in_value,
lldb::DynamicValueType use_dynamic,
const LanguageRuntime::VTableInfo & vtable_info,
TypeAndOrName & class_type_or_name,
Address & dynamic_address )
inlinevirtual

Reimplemented in lldb_private::ItaniumABIRuntime.

Definition at line 29 of file CommonABIRuntime.h.

◆ GetDynamicTypeInfo()

TypeAndOrName CommonABIRuntime::GetDynamicTypeInfo ( const lldb_private::Address & vtable_addr)
protected

Definition at line 103 of file CommonABIRuntime.cpp.

References m_dynamic_type_map, and m_mutex.

Referenced by lldb_private::ItaniumABIRuntime::GetTypeInfo().

◆ GetExceptionObjectForThread()

virtual lldb::ValueObjectSP lldb_private::CommonABIRuntime::GetExceptionObjectForThread ( lldb::ThreadSP thread_sp)
inlinevirtual

Reimplemented in lldb_private::ItaniumABIRuntime.

Definition at line 45 of file CommonABIRuntime.h.

◆ GetName()

virtual llvm::StringRef lldb_private::CommonABIRuntime::GetName ( ) const
pure virtual

◆ IsVTableSymbol()

virtual bool lldb_private::CommonABIRuntime::IsVTableSymbol ( Mangled & mangled) const
inlinevirtual

Reimplemented in lldb_private::ItaniumABIRuntime.

Definition at line 27 of file CommonABIRuntime.h.

◆ LookupTypeByName()

lldb::TypeSP CommonABIRuntime::LookupTypeByName ( llvm::StringRef type_name,
lldb::ModuleSP preferred_module,
bool & any_found ) const
protected

◆ SetDynamicTypeInfo()

void CommonABIRuntime::SetDynamicTypeInfo ( const lldb_private::Address & vtable_addr,
const TypeAndOrName & type_info )
protected

Definition at line 112 of file CommonABIRuntime.cpp.

References m_dynamic_type_map, and m_mutex.

Referenced by lldb_private::ItaniumABIRuntime::GetTypeInfo().

Member Data Documentation

◆ m_dynamic_type_map

DynamicTypeCache lldb_private::CommonABIRuntime::m_dynamic_type_map
private

Definition at line 73 of file CommonABIRuntime.h.

Referenced by GetDynamicTypeInfo(), and SetDynamicTypeInfo().

◆ m_mutex

std::mutex lldb_private::CommonABIRuntime::m_mutex
protected

Definition at line 68 of file CommonABIRuntime.h.

Referenced by GetDynamicTypeInfo(), and SetDynamicTypeInfo().

◆ m_process


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