LLDB mainline
Classes | Macros | Functions
DWARFASTParserClang.cpp File Reference
#include <cstdlib>
#include "DWARFASTParser.h"
#include "DWARFASTParserClang.h"
#include "DWARFDebugInfo.h"
#include "DWARFDeclContext.h"
#include "DWARFDefines.h"
#include "SymbolFileDWARF.h"
#include "SymbolFileDWARFDebugMap.h"
#include "SymbolFileDWARFDwo.h"
#include "UniqueDWARFASTType.h"
#include "Plugins/ExpressionParser/Clang/ClangASTImporter.h"
#include "Plugins/ExpressionParser/Clang/ClangASTMetadata.h"
#include "Plugins/ExpressionParser/Clang/ClangUtil.h"
#include "Plugins/Language/ObjC/ObjCLanguage.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/Value.h"
#include "lldb/Host/Host.h"
#include "lldb/Symbol/CompileUnit.h"
#include "lldb/Symbol/Function.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolFile.h"
#include "lldb/Symbol/TypeList.h"
#include "lldb/Symbol/TypeMap.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/Language.h"
#include "lldb/Utility/LLDBAssert.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/StreamString.h"
#include "clang/AST/CXXInheritance.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Type.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Demangle/Demangle.h"
#include <map>
#include <memory>
#include <optional>
#include <vector>

Go to the source code of this file.

Classes

class  DWARFASTParserClang::DelayedAddObjCClassProperty
 

Macros

#define DEBUG_PRINTF(fmt, ...)
 

Functions

static bool DeclKindIsCXXClass (clang::Decl::Kind decl_kind)
 
static bool IsClangModuleFwdDecl (const DWARFDIE &Die)
 Detect a forward declaration that is nested in a DW_TAG_module.
 
static DWARFDIE GetContainingClangModuleDIE (const DWARFDIE &die)
 
static lldb::ModuleSP GetContainingClangModule (const DWARFDIE &die)
 
static bool ShouldIgnoreArtificialField (llvm::StringRef FieldName)
 
static bool TagIsRecordType (dw_tag_t tag)
 Returns true for C++ constructs represented by clang::CXXRecordDecl.
 
static void PrepareContextToReceiveMembers (TypeSystemClang &ast, ClangASTImporter &ast_importer, clang::DeclContext *decl_ctx, DWARFDIE die, const char *type_name_cstr)
 This function ensures we are able to add members (nested types, functions, etc.) to this type.
 
static std::string GetUnitName (const DWARFDIE &die)
 
static std::optional< uint32_t > ExtractDataMemberLocation (DWARFDIE const &die, DWARFFormValue const &form_value, ModuleSP module_sp)
 
static TypePayloadClang GetPtrAuthMofidierPayload (const DWARFDIE &die)
 
static clang::CallingConv ConvertDWARFCallingConventionToClang (const ParsedDWARFTypeAttributes &attrs)
 
static bool IsSubroutine (const DWARFDIE &die)
 
static DWARFDIE GetContainingFunctionWithAbstractOrigin (const DWARFDIE &die)
 
static DWARFDIE FindAnyChildWithAbstractOrigin (const DWARFDIE &context)
 
static DWARFDIE FindFirstChildWithAbstractOrigin (const DWARFDIE &block, const DWARFDIE &function)
 

Macro Definition Documentation

◆ DEBUG_PRINTF

#define DEBUG_PRINTF (   fmt,
  ... 
)

Definition at line 60 of file DWARFASTParserClang.cpp.

Function Documentation

◆ ConvertDWARFCallingConventionToClang()

static clang::CallingConv ConvertDWARFCallingConventionToClang ( const ParsedDWARFTypeAttributes attrs)
static

◆ DeclKindIsCXXClass()

static bool DeclKindIsCXXClass ( clang::Decl::Kind  decl_kind)
static

◆ ExtractDataMemberLocation()

static std::optional< uint32_t > ExtractDataMemberLocation ( DWARFDIE const &  die,
DWARFFormValue const &  form_value,
ModuleSP  module_sp 
)
static

◆ FindAnyChildWithAbstractOrigin()

static DWARFDIE FindAnyChildWithAbstractOrigin ( const DWARFDIE context)
static

◆ FindFirstChildWithAbstractOrigin()

static DWARFDIE FindFirstChildWithAbstractOrigin ( const DWARFDIE block,
const DWARFDIE function 
)
static

◆ GetContainingClangModule()

static lldb::ModuleSP GetContainingClangModule ( const DWARFDIE die)
static

◆ GetContainingClangModuleDIE()

static DWARFDIE GetContainingClangModuleDIE ( const DWARFDIE die)
static

◆ GetContainingFunctionWithAbstractOrigin()

static DWARFDIE GetContainingFunctionWithAbstractOrigin ( const DWARFDIE die)
static

◆ GetPtrAuthMofidierPayload()

static TypePayloadClang GetPtrAuthMofidierPayload ( const DWARFDIE die)
static

◆ GetUnitName()

static std::string GetUnitName ( const DWARFDIE die)
static

◆ IsClangModuleFwdDecl()

static bool IsClangModuleFwdDecl ( const DWARFDIE Die)
static

Detect a forward declaration that is nested in a DW_TAG_module.

Definition at line 94 of file DWARFASTParserClang.cpp.

References lldb_private::plugin::dwarf::DWARFBaseDIE::GetAttributeValueAsUnsigned(), and lldb_private::plugin::dwarf::DWARFDIE::GetParent().

Referenced by DWARFASTParserClang::ParseCXXMethod().

◆ IsSubroutine()

static bool IsSubroutine ( const DWARFDIE die)
static

◆ PrepareContextToReceiveMembers()

static void PrepareContextToReceiveMembers ( TypeSystemClang ast,
ClangASTImporter ast_importer,
clang::DeclContext *  decl_ctx,
DWARFDIE  die,
const char *  type_name_cstr 
)
static

◆ ShouldIgnoreArtificialField()

static bool ShouldIgnoreArtificialField ( llvm::StringRef  FieldName)
static

Definition at line 141 of file DWARFASTParserClang.cpp.

Referenced by DWARFASTParserClang::ParseSingleMember().

◆ TagIsRecordType()

static bool TagIsRecordType ( dw_tag_t  tag)
static

Returns true for C++ constructs represented by clang::CXXRecordDecl.

Definition at line 148 of file DWARFASTParserClang.cpp.

Referenced by DWARFASTParserClang::GetClangDeclForDIE().