LLDB mainline
lldb_private::ItaniumABIRuntime Class Reference

#include <ItaniumABIRuntime.h>

Public Member Functions

 ItaniumABIRuntime (Process *process)
llvm::Expected< LanguageRuntime::VTableInfoGetVTableInfo (ValueObject &in_value, bool check_type)
bool GetDynamicTypeAndAddress (ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &dynamic_address, Value::ValueType &value_type)
void AppendExceptionBreakpointFunctions (std::vector< const char * > &names, bool catch_bp, bool throw_bp, bool for_expressions)
void AppendExceptionBreakpointFilterModules (FileSpecList &list, const Target &target)
lldb::ValueObjectSP GetExceptionObjectForThread (lldb::ThreadSP thread_sp)

Private Types

using DynamicTypeCache = std::map<Address, TypeAndOrName>
using VTableInfoCache = std::map<Address, LanguageRuntime::VTableInfo>

Private Member Functions

TypeAndOrName GetTypeInfo (ValueObject &in_value, const LanguageRuntime::VTableInfo &vtable_info)
llvm::Error TypeHasVTable (CompilerType type)
TypeAndOrName GetDynamicTypeInfo (const lldb_private::Address &vtable_addr)
void SetDynamicTypeInfo (const lldb_private::Address &vtable_addr, const TypeAndOrName &type_info)

Private Attributes

DynamicTypeCache m_dynamic_type_map
VTableInfoCache m_vtable_info_map
std::mutex m_mutex
Processm_process

Detailed Description

Definition at line 19 of file ItaniumABIRuntime.h.

Member Typedef Documentation

◆ DynamicTypeCache

Definition at line 52 of file ItaniumABIRuntime.h.

◆ VTableInfoCache

Constructor & Destructor Documentation

◆ ItaniumABIRuntime()

ItaniumABIRuntime::ItaniumABIRuntime ( Process * process)

Definition at line 22 of file ItaniumABIRuntime.cpp.

References m_process.

Member Function Documentation

◆ AppendExceptionBreakpointFilterModules()

void ItaniumABIRuntime::AppendExceptionBreakpointFilterModules ( FileSpecList & list,
const Target & target )

◆ AppendExceptionBreakpointFunctions()

void ItaniumABIRuntime::AppendExceptionBreakpointFunctions ( std::vector< const char * > & names,
bool catch_bp,
bool throw_bp,
bool for_expressions )

Definition at line 327 of file ItaniumABIRuntime.cpp.

◆ GetDynamicTypeAndAddress()

◆ GetDynamicTypeInfo()

TypeAndOrName ItaniumABIRuntime::GetDynamicTypeInfo ( const lldb_private::Address & vtable_addr)
private

Definition at line 438 of file ItaniumABIRuntime.cpp.

References m_dynamic_type_map, and m_mutex.

Referenced by GetTypeInfo().

◆ GetExceptionObjectForThread()

◆ GetTypeInfo()

◆ GetVTableInfo()

◆ SetDynamicTypeInfo()

void ItaniumABIRuntime::SetDynamicTypeInfo ( const lldb_private::Address & vtable_addr,
const TypeAndOrName & type_info )
private

Definition at line 448 of file ItaniumABIRuntime.cpp.

References m_dynamic_type_map, and m_mutex.

Referenced by GetTypeInfo().

◆ TypeHasVTable()

Member Data Documentation

◆ m_dynamic_type_map

DynamicTypeCache lldb_private::ItaniumABIRuntime::m_dynamic_type_map
private

Definition at line 55 of file ItaniumABIRuntime.h.

Referenced by GetDynamicTypeInfo(), and SetDynamicTypeInfo().

◆ m_mutex

std::mutex lldb_private::ItaniumABIRuntime::m_mutex
private

Definition at line 57 of file ItaniumABIRuntime.h.

Referenced by GetDynamicTypeInfo(), GetVTableInfo(), and SetDynamicTypeInfo().

◆ m_process

Process* lldb_private::ItaniumABIRuntime::m_process
private

◆ m_vtable_info_map

VTableInfoCache lldb_private::ItaniumABIRuntime::m_vtable_info_map
private

Definition at line 56 of file ItaniumABIRuntime.h.

Referenced by GetVTableInfo().


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