9#ifndef LLDB_SOURCE_PLUGINS_LANGUAGERUNTIME_CPLUSPLUS_ITANIUMABI_ITANIUMABILANGUAGERUNTIME_H
10#define LLDB_SOURCE_PLUGINS_LANGUAGERUNTIME_CPLUSPLUS_ITANIUMABI_ITANIUMABILANGUAGERUNTIME_H
42 bool isA(
const void *ClassID)
const override {
47 return runtime->
isA(&
ID);
51 llvm::Expected<LanguageRuntime::VTableInfo>
75 bool catch_bp,
bool throw_bp)
override;
88 bool catch_bp,
bool throw_bp,
bool for_expressions);
A section + offset based address class.
bool isA(const void *ClassID) const override
Generic representation of a type in a programming language.
llvm::StringRef GetPluginName() override
void ClearExceptionBreakpoints() override
llvm::Error TypeHasVTable(CompilerType compiler_type)
std::map< lldb_private::Address, VTableInfo > VTableInfoCache
ItaniumABILanguageRuntime(Process *process)
bool ExceptionBreakpointsAreSet() override
bool GetDynamicTypeAndAddress(ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type) override
bool isA(const void *ClassID) const override
lldb::BreakpointSP CreateExceptionBreakpoint(bool catch_bp, bool throw_bp, bool for_expressions, bool is_internal)
DynamicTypeCache m_dynamic_type_map
TypeAndOrName GetTypeInfo(ValueObject &in_value, const VTableInfo &vtable_info)
static lldb_private::LanguageRuntime * CreateInstance(Process *process, lldb::LanguageType language)
lldb::SearchFilterSP CreateExceptionSearchFilter() override
TypeAndOrName FixUpDynamicType(const TypeAndOrName &type_and_or_name, ValueObject &static_value) override
static llvm::StringRef GetPluginNameStatic()
lldb::BreakpointResolverSP CreateExceptionResolver(const lldb::BreakpointSP &bkpt, bool catch_bp, bool throw_bp) override
VTableInfoCache m_vtable_info_map
void SetDynamicTypeInfo(const lldb_private::Address &vtable_addr, const TypeAndOrName &type_info)
bool CouldHaveDynamicValue(ValueObject &in_value) override
void SetExceptionBreakpoints() override
std::map< lldb_private::Address, TypeAndOrName > DynamicTypeCache
bool ExceptionBreakpointsExplainStop(lldb::StopInfoSP stop_reason) override
~ItaniumABILanguageRuntime() override=default
static bool classof(const LanguageRuntime *runtime)
lldb::BreakpointSP m_cxx_exception_bp_sp
TypeAndOrName GetDynamicTypeInfo(const lldb_private::Address &vtable_addr)
llvm::Expected< LanguageRuntime::VTableInfo > GetVTableInfo(ValueObject &in_value, bool check_type) override
Get the vtable information for a given value.
lldb::ValueObjectSP GetExceptionObjectForThread(lldb::ThreadSP thread_sp) override
virtual bool isA(const void *ClassID) const
A plug-in interface definition class for debugging a process.
Sometimes you can find the name of the type corresponding to an object, but we don't have debug infor...
ValueType
Type that describes Value::m_value.
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::SearchFilter > SearchFilterSP
std::shared_ptr< lldb_private::BreakpointResolver > BreakpointResolverSP
std::shared_ptr< lldb_private::Thread > ThreadSP
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
LanguageType
Programming language type.
std::shared_ptr< lldb_private::Breakpoint > BreakpointSP
std::shared_ptr< lldb_private::StopInfo > StopInfoSP