LLDB  mainline
Classes | Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
DWARFASTParserClang Class Reference

#include <DWARFASTParserClang.h>

Inheritance diagram for DWARFASTParserClang:
Inheritance graph
[legend]
Collaboration diagram for DWARFASTParserClang:
Collaboration graph
[legend]

Classes

class  DelayedAddObjCClassProperty
 
struct  FieldInfo
 

Public Member Functions

 DWARFASTParserClang (lldb_private::TypeSystemClang &ast)
 
 ~DWARFASTParserClang () override
 
lldb::TypeSP ParseTypeFromDWARF (const lldb_private::SymbolContext &sc, const DWARFDIE &die, bool *type_is_new_ptr) override
 
lldb_private::ConstString ConstructDemangledNameFromDWARF (const DWARFDIE &die) override
 
lldb_private::FunctionParseFunctionFromDWARF (lldb_private::CompileUnit &comp_unit, const DWARFDIE &die, const lldb_private::AddressRange &func_range) override
 
bool CompleteTypeFromDWARF (const DWARFDIE &die, lldb_private::Type *type, lldb_private::CompilerType &compiler_type) override
 
lldb_private::CompilerDecl GetDeclForUIDFromDWARF (const DWARFDIE &die) override
 
void EnsureAllDIEsInDeclContextHaveBeenParsed (lldb_private::CompilerDeclContext decl_context) override
 
lldb_private::CompilerDeclContext GetDeclContextForUIDFromDWARF (const DWARFDIE &die) override
 
lldb_private::CompilerDeclContext GetDeclContextContainingUIDFromDWARF (const DWARFDIE &die) override
 
lldb_private::ClangASTImporterGetClangASTImporter ()
 
llvm::Expected< llvm::APInt > ExtractIntFromFormValue (const lldb_private::CompilerType &int_type, const DWARFFormValue &form_value) const
 Extracts an value for a given Clang integer type from a DWARFFormValue. More...
 
- Public Member Functions inherited from DWARFASTParser
virtual ~DWARFASTParser ()=default
 

Protected Member Functions

clang::DeclContext * GetDeclContextForBlock (const DWARFDIE &die)
 
clang::BlockDecl * ResolveBlockDIE (const DWARFDIE &die)
 
clang::NamespaceDecl * ResolveNamespaceDIE (const DWARFDIE &die)
 
bool ParseTemplateDIE (const DWARFDIE &die, lldb_private::TypeSystemClang::TemplateParameterInfos &template_param_infos)
 
bool ParseTemplateParameterInfos (const DWARFDIE &parent_die, lldb_private::TypeSystemClang::TemplateParameterInfos &template_param_infos)
 
std::string GetTemplateParametersString (const DWARFDIE &die)
 Get the template parameters of a die as a string if the die name does not already contain them. More...
 
std::string GetCPlusPlusQualifiedName (const DWARFDIE &die)
 
bool ParseChildMembers (const DWARFDIE &die, lldb_private::CompilerType &class_compiler_type, std::vector< std::unique_ptr< clang::CXXBaseSpecifier >> &base_classes, std::vector< DWARFDIE > &member_function_dies, DelayedPropertyList &delayed_properties, const lldb::AccessType default_accessibility, lldb_private::ClangASTImporter::LayoutInfo &layout_info)
 
size_t ParseChildParameters (clang::DeclContext *containing_decl_ctx, const DWARFDIE &parent_die, bool skip_artificial, bool &is_static, bool &is_variadic, bool &has_template_params, std::vector< lldb_private::CompilerType > &function_args, std::vector< clang::ParmVarDecl * > &function_param_decls, unsigned &type_quals)
 
size_t ParseChildEnumerators (lldb_private::CompilerType &compiler_type, bool is_signed, uint32_t enumerator_byte_size, const DWARFDIE &parent_die)
 
lldb::TypeSP ParseStructureLikeDIE (const lldb_private::SymbolContext &sc, const DWARFDIE &die, ParsedDWARFTypeAttributes &attrs)
 Parse a structure, class, or union type DIE. More...
 
lldb_private::TypeGetTypeForDIE (const DWARFDIE &die)
 
clang::Decl * GetClangDeclForDIE (const DWARFDIE &die)
 
clang::DeclContext * GetClangDeclContextForDIE (const DWARFDIE &die)
 
clang::DeclContext * GetClangDeclContextContainingDIE (const DWARFDIE &die, DWARFDIE *decl_ctx_die)
 
lldb_private::OptionalClangModuleID GetOwningClangModule (const DWARFDIE &die)
 
bool CopyUniqueClassMethodTypes (const DWARFDIE &src_class_die, const DWARFDIE &dst_class_die, lldb_private::Type *class_type, std::vector< DWARFDIE > &failures)
 
clang::DeclContext * GetCachedClangDeclContextForDIE (const DWARFDIE &die)
 
void LinkDeclContextToDIE (clang::DeclContext *decl_ctx, const DWARFDIE &die)
 
void LinkDeclToDIE (clang::Decl *decl, const DWARFDIE &die)
 
lldb::TypeSP UpdateSymbolContextScopeForType (const lldb_private::SymbolContext &sc, const DWARFDIE &die, lldb::TypeSP type_sp)
 If type_sp is valid, calculate and set its symbol context scope, and update the type list for its backing symbol file. More...
 
lldb::TypeSP ParseTypeFromClangModule (const lldb_private::SymbolContext &sc, const DWARFDIE &die, lldb_private::Log *log)
 Follow Clang Module Skeleton CU references to find a type definition. More...
 
lldb::ModuleSP GetModuleForType (const DWARFDIE &die)
 

Private Member Functions

void ParseObjCProperty (const DWARFDIE &die, const DWARFDIE &parent_die, const lldb_private::CompilerType &class_clang_type, DelayedPropertyList &delayed_properties)
 Parses a DW_TAG_APPLE_property DIE and appends the parsed data to the list of delayed Objective-C properties. More...
 
void ParseSingleMember (const DWARFDIE &die, const DWARFDIE &parent_die, const lldb_private::CompilerType &class_clang_type, lldb::AccessType default_accessibility, lldb_private::ClangASTImporter::LayoutInfo &layout_info, FieldInfo &last_field_info)
 
bool CompleteRecordType (const DWARFDIE &die, lldb_private::Type *type, lldb_private::CompilerType &clang_type)
 
bool CompleteEnumType (const DWARFDIE &die, lldb_private::Type *type, lldb_private::CompilerType &clang_type)
 
lldb::TypeSP ParseTypeModifier (const lldb_private::SymbolContext &sc, const DWARFDIE &die, ParsedDWARFTypeAttributes &attrs)
 
lldb::TypeSP ParseEnum (const lldb_private::SymbolContext &sc, const DWARFDIE &die, ParsedDWARFTypeAttributes &attrs)
 
lldb::TypeSP ParseSubroutine (const DWARFDIE &die, ParsedDWARFTypeAttributes &attrs)
 
lldb::TypeSP ParseArrayType (const DWARFDIE &die, const ParsedDWARFTypeAttributes &attrs)
 
lldb::TypeSP ParsePointerToMemberType (const DWARFDIE &die, const ParsedDWARFTypeAttributes &attrs)
 
void ParseInheritance (const DWARFDIE &die, const DWARFDIE &parent_die, const lldb_private::CompilerType class_clang_type, const lldb::AccessType default_accessibility, const lldb::ModuleSP &module_sp, std::vector< std::unique_ptr< clang::CXXBaseSpecifier >> &base_classes, lldb_private::ClangASTImporter::LayoutInfo &layout_info)
 Parses a DW_TAG_inheritance DIE into a base/super class. More...
 
typedef std::vector< DelayedAddObjCClassPropertyDelayedPropertyList
 
typedef llvm::DenseMap< const DWARFDebugInfoEntry *, clang::DeclContext * > DIEToDeclContextMap
 
typedef std::multimap< const clang::DeclContext *, const DWARFDIEDeclContextToDIEMap
 
typedef llvm::DenseMap< const DWARFDebugInfoEntry *, lldb_private::OptionalClangModuleIDDIEToModuleMap
 
typedef llvm::DenseMap< const DWARFDebugInfoEntry *, clang::Decl * > DIEToDeclMap
 
lldb_private::TypeSystemClangm_ast
 
DIEToDeclMap m_die_to_decl
 
DIEToDeclContextMap m_die_to_decl_ctx
 
DeclContextToDIEMap m_decl_ctx_to_die
 
DIEToModuleMap m_die_to_module
 
std::unique_ptr< lldb_private::ClangASTImporterm_clang_ast_importer_up
 

Additional Inherited Members

- Static Public Member Functions inherited from DWARFASTParser
static llvm::Optional< lldb_private::SymbolFile::ArrayInfoParseChildArrayInfo (const DWARFDIE &parent_die, const lldb_private::ExecutionContext *exe_ctx=nullptr)
 
static lldb::AccessType GetAccessTypeFromDWARF (uint32_t dwarf_accessibility)
 

Detailed Description

Definition at line 38 of file DWARFASTParserClang.h.

Member Typedef Documentation

◆ DeclContextToDIEMap

typedef std::multimap<const clang::DeclContext *, const DWARFDIE> DWARFASTParserClang::DeclContextToDIEMap
protected

Definition at line 100 of file DWARFASTParserClang.h.

◆ DelayedPropertyList

Definition at line 94 of file DWARFASTParserClang.h.

◆ DIEToDeclContextMap

typedef llvm::DenseMap<const DWARFDebugInfoEntry *, clang::DeclContext *> DWARFASTParserClang::DIEToDeclContextMap
protected

Definition at line 98 of file DWARFASTParserClang.h.

◆ DIEToDeclMap

typedef llvm::DenseMap<const DWARFDebugInfoEntry *, clang::Decl *> DWARFASTParserClang::DIEToDeclMap
protected

Definition at line 105 of file DWARFASTParserClang.h.

◆ DIEToModuleMap

Definition at line 103 of file DWARFASTParserClang.h.

Constructor & Destructor Documentation

◆ DWARFASTParserClang()

DWARFASTParserClang::DWARFASTParserClang ( lldb_private::TypeSystemClang ast)

Definition at line 62 of file DWARFASTParserClang.cpp.

◆ ~DWARFASTParserClang()

DWARFASTParserClang::~DWARFASTParserClang ( )
overridedefault

Member Function Documentation

◆ CompleteEnumType()

bool DWARFASTParserClang::CompleteEnumType ( const DWARFDIE die,
lldb_private::Type type,
lldb_private::CompilerType clang_type 
)
private

◆ CompleteRecordType()

bool DWARFASTParserClang::CompleteRecordType ( const DWARFDIE die,
lldb_private::Type type,
lldb_private::CompilerType clang_type 
)
private

◆ CompleteTypeFromDWARF()

bool DWARFASTParserClang::CompleteTypeFromDWARF ( const DWARFDIE die,
lldb_private::Type type,
lldb_private::CompilerType compiler_type 
)
overridevirtual

◆ ConstructDemangledNameFromDWARF()

ConstString DWARFASTParserClang::ConstructDemangledNameFromDWARF ( const DWARFDIE die)
overridevirtual

◆ CopyUniqueClassMethodTypes()

bool DWARFASTParserClang::CopyUniqueClassMethodTypes ( const DWARFDIE src_class_die,
const DWARFDIE dst_class_die,
lldb_private::Type class_type,
std::vector< DWARFDIE > &  failures 
)
protected

◆ EnsureAllDIEsInDeclContextHaveBeenParsed()

void DWARFASTParserClang::EnsureAllDIEsInDeclContextHaveBeenParsed ( lldb_private::CompilerDeclContext  decl_context)
overridevirtual

◆ ExtractIntFromFormValue()

llvm::Expected< llvm::APInt > DWARFASTParserClang::ExtractIntFromFormValue ( const lldb_private::CompilerType int_type,
const DWARFFormValue form_value 
) const

Extracts an value for a given Clang integer type from a DWARFFormValue.

Parameters
int_typeThe Clang type that defines the bit size and signedness of the integer that should be extracted. Has to be either an integer type or an enum type. For enum types the underlying integer type will be considered as the expected integer type that should be extracted.
form_valueThe DWARFFormValue that contains the integer value.
Returns
An APInt containing the same integer value as the given DWARFFormValue with the bit width of the given integer type. Returns an error if the value in the DWARFFormValue does not fit into the given integer type or the integer type isn't supported.

Definition at line 2694 of file DWARFASTParserClang.cpp.

References lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb_private::TypeSystemClang::getASTContext(), lldb_private::CompilerType::GetTypeSystem(), DWARFFormValue::Signed(), string(), and DWARFFormValue::Unsigned().

Referenced by ParseSingleMember().

◆ GetCachedClangDeclContextForDIE()

clang::DeclContext * DWARFASTParserClang::GetCachedClangDeclContextForDIE ( const DWARFDIE die)
protected

◆ GetClangASTImporter()

ClangASTImporter & DWARFASTParserClang::GetClangASTImporter ( )

◆ GetClangDeclContextContainingDIE()

clang::DeclContext * DWARFASTParserClang::GetClangDeclContextContainingDIE ( const DWARFDIE die,
DWARFDIE decl_ctx_die 
)
protected

◆ GetClangDeclContextForDIE()

clang::DeclContext * DWARFASTParserClang::GetClangDeclContextForDIE ( const DWARFDIE die)
protected

◆ GetClangDeclForDIE()

clang::Decl * DWARFASTParserClang::GetClangDeclForDIE ( const DWARFDIE die)
protected

◆ GetCPlusPlusQualifiedName()

std::string DWARFASTParserClang::GetCPlusPlusQualifiedName ( const DWARFDIE die)
protected

◆ GetDeclContextContainingUIDFromDWARF()

CompilerDeclContext DWARFASTParserClang::GetDeclContextContainingUIDFromDWARF ( const DWARFDIE die)
overridevirtual

◆ GetDeclContextForBlock()

clang::DeclContext * DWARFASTParserClang::GetDeclContextForBlock ( const DWARFDIE die)
protected

◆ GetDeclContextForUIDFromDWARF()

CompilerDeclContext DWARFASTParserClang::GetDeclContextForUIDFromDWARF ( const DWARFDIE die)
overridevirtual

◆ GetDeclForUIDFromDWARF()

CompilerDecl DWARFASTParserClang::GetDeclForUIDFromDWARF ( const DWARFDIE die)
overridevirtual

◆ GetModuleForType()

lldb::ModuleSP DWARFASTParserClang::GetModuleForType ( const DWARFDIE die)
protected

◆ GetOwningClangModule()

OptionalClangModuleID DWARFASTParserClang::GetOwningClangModule ( const DWARFDIE die)
protected

◆ GetTemplateParametersString()

std::string DWARFASTParserClang::GetTemplateParametersString ( const DWARFDIE die)
protected

◆ GetTypeForDIE()

Type * DWARFASTParserClang::GetTypeForDIE ( const DWARFDIE die)
protected

◆ LinkDeclContextToDIE()

void DWARFASTParserClang::LinkDeclContextToDIE ( clang::DeclContext *  decl_ctx,
const DWARFDIE die 
)
protected

◆ LinkDeclToDIE()

void DWARFASTParserClang::LinkDeclToDIE ( clang::Decl *  decl,
const DWARFDIE die 
)
protected

◆ ParseArrayType()

TypeSP DWARFASTParserClang::ParseArrayType ( const DWARFDIE die,
const ParsedDWARFTypeAttributes attrs 
)
private

◆ ParseChildEnumerators()

size_t DWARFASTParserClang::ParseChildEnumerators ( lldb_private::CompilerType compiler_type,
bool  is_signed,
uint32_t  enumerator_byte_size,
const DWARFDIE parent_die 
)
protected

◆ ParseChildMembers()

bool DWARFASTParserClang::ParseChildMembers ( const DWARFDIE die,
lldb_private::CompilerType class_compiler_type,
std::vector< std::unique_ptr< clang::CXXBaseSpecifier >> &  base_classes,
std::vector< DWARFDIE > &  member_function_dies,
DelayedPropertyList delayed_properties,
const lldb::AccessType  default_accessibility,
lldb_private::ClangASTImporter::LayoutInfo layout_info 
)
protected

◆ ParseChildParameters()

size_t DWARFASTParserClang::ParseChildParameters ( clang::DeclContext *  containing_decl_ctx,
const DWARFDIE parent_die,
bool  skip_artificial,
bool &  is_static,
bool &  is_variadic,
bool &  has_template_params,
std::vector< lldb_private::CompilerType > &  function_args,
std::vector< clang::ParmVarDecl * > &  function_param_decls,
unsigned &  type_quals 
)
protected

◆ ParseEnum()

TypeSP DWARFASTParserClang::ParseEnum ( const lldb_private::SymbolContext sc,
const DWARFDIE die,
ParsedDWARFTypeAttributes attrs 
)
private

◆ ParseFunctionFromDWARF()

Function * DWARFASTParserClang::ParseFunctionFromDWARF ( lldb_private::CompileUnit comp_unit,
const DWARFDIE die,
const lldb_private::AddressRange func_range 
)
overridevirtual

◆ ParseInheritance()

void DWARFASTParserClang::ParseInheritance ( const DWARFDIE die,
const DWARFDIE parent_die,
const lldb_private::CompilerType  class_clang_type,
const lldb::AccessType  default_accessibility,
const lldb::ModuleSP &  module_sp,
std::vector< std::unique_ptr< clang::CXXBaseSpecifier >> &  base_classes,
lldb_private::ClangASTImporter::LayoutInfo layout_info 
)
private

Parses a DW_TAG_inheritance DIE into a base/super class.

Parameters
dieThe DW_TAG_inheritance DIE to parse.
parent_dieThe parent DIE of the given DIE.
class_clang_typeThe C++/Objective-C class representing parent_die. For an Objective-C class this method sets the super class on success. For a C++ class this will not add the result as a base class.
default_accessibilityThe default accessibility that is given to base classes if they don't have an explicit accessibility set.
module_spThe current Module.
base_classesThe list of C++ base classes that will be appended with the parsed base class on success.
layout_infoThe layout information that will be updated for C++ base classes with the base offset.

Definition at line 1361 of file DWARFASTParserClang.cpp.

References DWARFAttributes::AttributeAtIndex(), lldb_private::ClangASTImporter::LayoutInfo::base_offsets, DWARFFormValue::BlockData(), DWARFFormValue::Boolean(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), lldb::eRegisterKindDWARF, DWARFAttributes::ExtractFormValueAtIndex(), DWARFASTParser::GetAccessTypeFromDWARF(), DWARFBaseDIE::GetAttributes(), DWARFBaseDIE::GetCU(), DWARFBaseDIE::GetData(), lldb_private::DataExtractor::GetDataStart(), lldb_private::Type::GetFullCompilerType(), DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::GetTypeSystem(), DWARFFormValue::Reference(), DWARFDIE::ResolveTypeUID(), lldb_private::Value::ResolveValue(), lldb_private::Scalar::UInt(), and DWARFFormValue::Unsigned().

Referenced by ParseChildMembers().

◆ ParseObjCProperty()

void DWARFASTParserClang::ParseObjCProperty ( const DWARFDIE die,
const DWARFDIE parent_die,
const lldb_private::CompilerType class_clang_type,
DelayedPropertyList delayed_properties 
)
private

Parses a DW_TAG_APPLE_property DIE and appends the parsed data to the list of delayed Objective-C properties.

Note: The delayed property needs to be finalized to actually create the property declarations in the module AST.

Parameters
dieThe DW_TAG_APPLE_property DIE that will be parsed.
parent_dieThe parent DIE.
class_clang_typeThe Objective-C class that will contain the created property.
delayed_propertiesThe list of delayed properties that the result will be appended to.

Definition at line 2658 of file DWARFASTParserClang.cpp.

References DWARFBaseDIE::GetDWARF(), DWARFBaseDIE::GetID(), lldb_private::Type::GetLayoutCompilerType(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFDIE::ResolveTypeUID(), lldb_private::ClangASTMetadata::SetUserID(), and DWARFBaseDIE::Tag().

Referenced by ParseChildMembers().

◆ ParsePointerToMemberType()

TypeSP DWARFASTParserClang::ParsePointerToMemberType ( const DWARFDIE die,
const ParsedDWARFTypeAttributes attrs 
)
private

◆ ParseSingleMember()

void DWARFASTParserClang::ParseSingleMember ( const DWARFDIE die,
const DWARFDIE parent_die,
const lldb_private::CompilerType class_clang_type,
lldb::AccessType  default_accessibility,
lldb_private::ClangASTImporter::LayoutInfo layout_info,
FieldInfo last_field_info 
)
private

Definition at line 2750 of file DWARFASTParserClang.cpp.

References lldb_private::ClangASTImporter::LayoutInfo::base_offsets, DWARFASTParserClang::FieldInfo::bit_offset, DWARFASTParserClang::FieldInfo::bit_size, lldb_private::TypeSystemClang::CreateArrayType(), lldb_private::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eAccessPublic, lldb::eByteOrderLittle, lldb::eEncodingSint, ExtractIntFromFormValue(), lldb_private::ClangASTImporter::LayoutInfo::field_offsets, DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::TypeSystemClang::GetBuiltinTypeForEncodingAndBitSize(), lldb_private::ObjectFile::GetByteOrder(), lldb_private::Type::GetByteSize(), lldb_private::CompilerType::GetCompleteType(), DWARFBaseDIE::GetCU(), DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), DWARFBaseDIE::GetID(), lldb_private::Type::GetLayoutCompilerType(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), GetUnitName(), lldb_private::CompilerType::IsArrayType(), DWARFASTParserClang::FieldInfo::IsBitfield(), lldb_private::CompilerType::IsCompleteType(), lldb_private::CompilerType::IsIntegerOrEnumerationType(), LLDB_LOG, LLDB_LOG_ERROR, m_ast, DWARFASTParserClang::FieldInfo::NextBitfieldOffsetIsValid(), DWARFDIE::ResolveTypeUID(), DWARFASTParserClang::FieldInfo::SetIsBitfield(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), DWARFUnit::Supports_unnamed_objc_bitfields(), DWARFBaseDIE::Tag(), UINT32_MAX, and UINT64_MAX.

Referenced by ParseChildMembers().

◆ ParseStructureLikeDIE()

TypeSP DWARFASTParserClang::ParseStructureLikeDIE ( const lldb_private::SymbolContext sc,
const DWARFDIE die,
ParsedDWARFTypeAttributes attrs 
)
protected

Parse a structure, class, or union type DIE.

Definition at line 1597 of file DWARFASTParserClang.cpp.

References ParsedDWARFTypeAttributes::accessibility, lldb_private::TypeSystemClang::TemplateParameterInfos::args, lldb_private::ClangASTImporter::LayoutInfo::bit_size, ParsedDWARFTypeAttributes::byte_size, ParsedDWARFTypeAttributes::calling_convention, ParsedDWARFTypeAttributes::class_language, lldb_private::Declaration::Clear(), lldb_private::TypeSystemClang::CreateClassTemplateSpecializationDecl(), lldb_private::TypeSystemClang::CreateClassTemplateSpecializationType(), lldb_private::TypeSystemClang::CreateRecordType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, DeclKindIsCXXClass(), lldb_private::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eAccessPrivate, lldb::eAccessPublic, lldb::eLanguageTypeObjC, lldb::eLanguageTypeObjC_plus_plus, ParsedDWARFTypeAttributes::exports_symbols, SymbolFileDWARFDebugMap::FindCompleteObjCDefinitionTypeForDIE(), SymbolFileDWARFDebugMap::FindDefinitionTypeForDWARFDeclContext(), lldb_private::TypeSystemClang::GetAsCXXRecordDecl(), GetCachedClangDeclContextForDIE(), GetClangASTImporter(), GetClangDeclContextContainingDIE(), GetCPlusPlusQualifiedName(), lldb_private::ConstString::GetCString(), DWARFBaseDIE::GetCU(), lldb_private::TypeSystemClang::GetDeclContextForType(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDIERef(), DWARFBaseDIE::GetDWARF(), SymbolFileDWARF::GetDWARFDeclContext(), DWARFBaseDIE::GetID(), SymbolFileDWARF::GetLanguage(), lldb_private::GetLog(), DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), GetOwningClangModule(), DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_complete_objc_class, ParsedDWARFTypeAttributes::is_forward_declaration, LinkDeclContextToDIE(), LLDB_INVALID_UID, m_ast, ParsedDWARFTypeAttributes::name, lldb_private::TypeSystemClang::TemplateParameterInfos::packed_args, lldb_private::TypeSystemClang::ParseClassTemplateDecl(), ParseTemplateParameterInfos(), ParseTypeFromClangModule(), PrepareContextToReceiveMembers(), lldb_private::TypeSystemClang::SetHasExternalStorage(), lldb_private::ClangASTMetadata::SetIsDynamicCXXType(), lldb_private::TypeSystemClang::SetMetadata(), lldb_private::ClangASTImporter::SetRecordLayout(), lldb_private::ClangASTMetadata::SetUserID(), string(), DWARFBaseDIE::Supports_DW_AT_APPLE_objc_complete_type(), and DWARFBaseDIE::Tag().

Referenced by ParseTypeFromDWARF().

◆ ParseSubroutine()

TypeSP DWARFASTParserClang::ParseSubroutine ( const DWARFDIE die,
ParsedDWARFTypeAttributes attrs 
)
private

Definition at line 882 of file DWARFASTParserClang.cpp.

References ParsedDWARFTypeAttributes::abstract_origin, ParsedDWARFTypeAttributes::accessibility, lldb_private::TypeSystemClang::AddMethodToCXXRecordType(), lldb_private::TypeSystemClang::AddMethodToObjCObjectType(), ConvertDWARFCallingConventionToClang(), CopyUniqueClassMethodTypes(), lldb_private::TypeSystemClang::CreateFunctionDeclaration(), lldb_private::TypeSystemClang::CreateFunctionTemplateDecl(), lldb_private::TypeSystemClang::CreateFunctionTemplateSpecializationInfo(), lldb_private::TypeSystemClang::CreateFunctionType(), DEBUG_PRINTF, ParsedDWARFTypeAttributes::decl, DeclKindIsCXXClass(), DIE_IS_BEING_PARSED, lldb_private::DW_TAG_value_to_name(), lldb::eAccessNone, lldb::eAccessPublic, lldb::eBasicTypeVoid, lldb_private::TypeSystemClang::getASTContext(), lldb_private::TypeSystemClang::GetBasicType(), GetCachedClangDeclContextForDIE(), GetClangDeclContextContainingDIE(), GetClangDeclContextForDIE(), lldb_private::ObjCLanguage::MethodName::GetClassName(), lldb_private::ConstString::GetCString(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), lldb_private::Type::GetForwardCompilerType(), lldb_private::Type::GetFullCompilerType(), lldb_private::UserID::GetID(), DWARFBaseDIE::GetID(), lldb_private::GetLog(), DWARFDIE::GetName(), lldb_private::Type::GetName(), DWARFBaseDIE::GetOffset(), lldb_private::CompilerType::GetOpaqueQualType(), GetOwningClangModule(), lldb_private::ConstString::GetStringRef(), lldb_private::TypeSystemClang::GetTranslationUnitDecl(), DWARFBaseDIE::HasChildren(), ParsedDWARFTypeAttributes::is_artificial, ParsedDWARFTypeAttributes::is_explicit, ParsedDWARFTypeAttributes::is_inline, ParsedDWARFTypeAttributes::is_objc_direct_call, ParsedDWARFTypeAttributes::is_virtual, lldb_private::CompilerType::IsBeingDefined(), IsClangModuleFwdDecl(), lldb_private::ObjCLanguage::MethodName::IsValid(), DWARFFormValue::IsValid(), LinkDeclContextToDIE(), LLDB_INVALID_UID, LLDB_LOGF, lldbassert, m_ast, ParsedDWARFTypeAttributes::mangled_name, ParsedDWARFTypeAttributes::name, ParsedDWARFTypeAttributes::object_pointer, ParseChildParameters(), ParseTemplateParameterInfos(), ParsedDWARFTypeAttributes::ref_qual, DWARFFormValue::Reference(), lldb_private::TypeSystemClang::SetFunctionParameters(), lldb_private::TypeSystemClang::SetMetadata(), lldb_private::TypeSystemClang::SetMetadataAsUserID(), lldb_private::ClangASTMetadata::SetObjectPtrName(), lldb_private::ClangASTMetadata::SetUserID(), ParsedDWARFTypeAttributes::specification, ParsedDWARFTypeAttributes::storage, string(), DWARFBaseDIE::Tag(), and ParsedDWARFTypeAttributes::type.

Referenced by ParseTypeFromDWARF().

◆ ParseTemplateDIE()

bool DWARFASTParserClang::ParseTemplateDIE ( const DWARFDIE die,
lldb_private::TypeSystemClang::TemplateParameterInfos template_param_infos 
)
protected

◆ ParseTemplateParameterInfos()

bool DWARFASTParserClang::ParseTemplateParameterInfos ( const DWARFDIE parent_die,
lldb_private::TypeSystemClang::TemplateParameterInfos template_param_infos 
)
protected

◆ ParseTypeFromClangModule()

TypeSP DWARFASTParserClang::ParseTypeFromClangModule ( const lldb_private::SymbolContext sc,
const DWARFDIE die,
lldb_private::Log log 
)
protected

◆ ParseTypeFromDWARF()

TypeSP DWARFASTParserClang::ParseTypeFromDWARF ( const lldb_private::SymbolContext sc,
const DWARFDIE die,
bool *  type_is_new_ptr 
)
overridevirtual

◆ ParseTypeModifier()

lldb::TypeSP DWARFASTParserClang::ParseTypeModifier ( const lldb_private::SymbolContext sc,
const DWARFDIE die,
ParsedDWARFTypeAttributes attrs 
)
private

◆ ResolveBlockDIE()

clang::BlockDecl * DWARFASTParserClang::ResolveBlockDIE ( const DWARFDIE die)
protected

◆ ResolveNamespaceDIE()

clang::NamespaceDecl * DWARFASTParserClang::ResolveNamespaceDIE ( const DWARFDIE die)
protected

◆ UpdateSymbolContextScopeForType()

TypeSP DWARFASTParserClang::UpdateSymbolContextScopeForType ( const lldb_private::SymbolContext sc,
const DWARFDIE die,
lldb::TypeSP  type_sp 
)
protected

Member Data Documentation

◆ m_ast

lldb_private::TypeSystemClang& DWARFASTParserClang::m_ast
protected

◆ m_clang_ast_importer_up

std::unique_ptr<lldb_private::ClangASTImporter> DWARFASTParserClang::m_clang_ast_importer_up
protected

Definition at line 112 of file DWARFASTParserClang.h.

Referenced by GetClangASTImporter().

◆ m_decl_ctx_to_die

DeclContextToDIEMap DWARFASTParserClang::m_decl_ctx_to_die
protected

◆ m_die_to_decl

DIEToDeclMap DWARFASTParserClang::m_die_to_decl
protected

Definition at line 108 of file DWARFASTParserClang.h.

Referenced by GetClangDeclForDIE().

◆ m_die_to_decl_ctx

DIEToDeclContextMap DWARFASTParserClang::m_die_to_decl_ctx
protected

◆ m_die_to_module

DIEToModuleMap DWARFASTParserClang::m_die_to_module
protected

Definition at line 111 of file DWARFASTParserClang.h.

Referenced by GetOwningClangModule().


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