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/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/DeclCXX.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/Type.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 void ForcefullyCompleteType (CompilerType type)
 
static void PrepareContextToReceiveMembers (TypeSystemClang &ast, ClangASTImporter &ast_importer, clang::DeclContext *decl_ctx, DWARFDIE die, const char *type_name_cstr)
 This function serves a similar purpose as RequireCompleteType above, but it avoids completing the type if it is not immediately necessary.
 
static std::string GetUnitName (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 57 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

◆ FindAnyChildWithAbstractOrigin()

static DWARFDIE FindAnyChildWithAbstractOrigin ( const DWARFDIE context)
static

Definition at line 3391 of file DWARFASTParserClang.cpp.

References DWARFDIE::children().

Referenced by FindFirstChildWithAbstractOrigin().

◆ FindFirstChildWithAbstractOrigin()

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

◆ ForcefullyCompleteType()

static void ForcefullyCompleteType ( CompilerType  type)
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

◆ GetUnitName()

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

Definition at line 405 of file DWARFASTParserClang.cpp.

References DWARFBaseDIE::GetCU().

Referenced by DWARFASTParserClang::ParseSingleMember().

◆ IsClangModuleFwdDecl()

static bool IsClangModuleFwdDecl ( const DWARFDIE Die)
static

Detect a forward declaration that is nested in a DW_TAG_module.

Definition at line 88 of file DWARFASTParserClang.cpp.

References DWARFBaseDIE::GetAttributeValueAsUnsigned(), and DWARFDIE::GetParent().

Referenced by DWARFASTParserClang::ParseSubroutine().

◆ 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