LLDB mainline
|
#include <SymbolFileDWARF.h>
Public Types | |
typedef std::map< lldb_private::ConstString, lldb::ModuleSP > | ExternalTypeModuleMap |
![]() | |
enum | Abilities { CompileUnits = (1u << 0) , LineTables = (1u << 1) , Functions = (1u << 2) , Blocks = (1u << 3) , GlobalVariables = (1u << 4) , LocalVariables = (1u << 5) , VariableTypes = (1u << 6) , kAllAbilities = ((1u << 7) - 1u) } |
Public Member Functions | |
SymbolFileDWARF (lldb::ObjectFileSP objfile_sp, lldb_private::SectionList *dwo_section_list) | |
~SymbolFileDWARF () override | |
uint32_t | CalculateAbilities () override |
void | InitializeObject () override |
Initialize the SymbolFile object. | |
lldb::LanguageType | ParseLanguage (lldb_private::CompileUnit &comp_unit) override |
lldb_private::XcodeSDK | ParseXcodeSDK (lldb_private::CompileUnit &comp_unit) override |
Return the Xcode SDK comp_unit was compiled against. | |
size_t | ParseFunctions (lldb_private::CompileUnit &comp_unit) override |
bool | ParseLineTable (lldb_private::CompileUnit &comp_unit) override |
bool | ParseDebugMacros (lldb_private::CompileUnit &comp_unit) override |
bool | ForEachExternalModule (lldb_private::CompileUnit &, llvm::DenseSet< lldb_private::SymbolFile * > &, llvm::function_ref< bool(lldb_private::Module &)>) override |
bool | ParseSupportFiles (lldb_private::CompileUnit &comp_unit, lldb_private::FileSpecList &support_files) override |
bool | ParseIsOptimized (lldb_private::CompileUnit &comp_unit) override |
size_t | ParseTypes (lldb_private::CompileUnit &comp_unit) override |
bool | ParseImportedModules (const lldb_private::SymbolContext &sc, std::vector< lldb_private::SourceModule > &imported_modules) override |
size_t | ParseBlocksRecursive (lldb_private::Function &func) override |
size_t | ParseVariablesForContext (const lldb_private::SymbolContext &sc) override |
lldb_private::Type * | ResolveTypeUID (lldb::user_id_t type_uid) override |
std::optional< ArrayInfo > | GetDynamicArrayInfoForUID (lldb::user_id_t type_uid, const lldb_private::ExecutionContext *exe_ctx) override |
If type_uid points to an array type, return its characteristics. | |
bool | CompleteType (lldb_private::CompilerType &compiler_type) override |
lldb_private::Type * | ResolveType (const DWARFDIE &die, bool assert_not_being_parsed=true, bool resolve_function_context=false) |
lldb_private::CompilerDecl | GetDeclForUID (lldb::user_id_t uid) override |
lldb_private::CompilerDeclContext | GetDeclContextForUID (lldb::user_id_t uid) override |
lldb_private::CompilerDeclContext | GetDeclContextContainingUID (lldb::user_id_t uid) override |
void | ParseDeclsForContext (lldb_private::CompilerDeclContext decl_ctx) override |
uint32_t | ResolveSymbolContext (const lldb_private::Address &so_addr, lldb::SymbolContextItem resolve_scope, lldb_private::SymbolContext &sc) override |
lldb_private::Status | CalculateFrameVariableError (lldb_private::StackFrame &frame) override |
Subclasses will override this function to for GetFrameVariableError(). | |
uint32_t | ResolveSymbolContext (const lldb_private::SourceLocationSpec &src_location_spec, lldb::SymbolContextItem resolve_scope, lldb_private::SymbolContextList &sc_list) override |
void | FindGlobalVariables (lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, lldb_private::VariableList &variables) override |
void | FindGlobalVariables (const lldb_private::RegularExpression ®ex, uint32_t max_matches, lldb_private::VariableList &variables) override |
void | FindFunctions (const lldb_private::Module::LookupInfo &lookup_info, const lldb_private::CompilerDeclContext &parent_decl_ctx, bool include_inlines, lldb_private::SymbolContextList &sc_list) override |
void | FindFunctions (const lldb_private::RegularExpression ®ex, bool include_inlines, lldb_private::SymbolContextList &sc_list) override |
void | GetMangledNamesForFunction (const std::string &scope_qualified_name, std::vector< lldb_private::ConstString > &mangled_names) override |
void | FindTypes (lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, llvm::DenseSet< lldb_private::SymbolFile * > &searched_symbol_files, lldb_private::TypeMap &types) override |
void | FindTypes (llvm::ArrayRef< lldb_private::CompilerContext > pattern, lldb_private::LanguageSet languages, llvm::DenseSet< SymbolFile * > &searched_symbol_files, lldb_private::TypeMap &types) override |
void | GetTypes (lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) override |
llvm::Expected< lldb::TypeSystemSP > | GetTypeSystemForLanguage (lldb::LanguageType language) override |
lldb_private::CompilerDeclContext | FindNamespace (lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx) override |
void | PreloadSymbols () override |
std::recursive_mutex & | GetModuleMutex () const override |
Symbols file subclasses should override this to return the Module that owns the TypeSystem that this symbol file modifies type information in. | |
llvm::StringRef | GetPluginName () override |
DWARFDebugAbbrev * | DebugAbbrev () |
DWARFDebugInfo & | DebugInfo () |
DWARFDebugRanges * | GetDebugRanges () |
DWARFDIE | GetDeclContextDIEContainingDIE (const DWARFDIE &die) |
bool | HasForwardDeclForClangType (const lldb_private::CompilerType &compiler_type) |
lldb_private::CompileUnit * | GetCompUnitForDWARFCompUnit (DWARFCompileUnit &dwarf_cu) |
virtual void | GetObjCMethods (lldb_private::ConstString class_name, llvm::function_ref< bool(DWARFDIE die)> callback) |
bool | Supports_DW_AT_APPLE_objc_complete_type (DWARFUnit *cu) |
lldb_private::DebugMacrosSP | ParseDebugMacros (lldb::offset_t *offset) |
lldb::ModuleSP | GetExternalModule (lldb_private::ConstString name) |
const ExternalTypeModuleMap & | getExternalTypeModules () const |
Return the list of Clang modules imported by this SymbolFile. | |
virtual DWARFDIE | GetDIE (const DIERef &die_ref) |
DWARFDIE | GetDIE (lldb::user_id_t uid) |
std::shared_ptr< SymbolFileDWARFDwo > | GetDwoSymbolFileForCompileUnit (DWARFUnit &dwarf_cu, const DWARFDebugInfoEntry &cu_die) |
std::optional< uint64_t > | GetDWOId () |
If this is a DWARF object with a single CU, return its DW_AT_dwo_id. | |
std::vector< std::unique_ptr< lldb_private::CallEdge > > | ParseCallEdgesInFunction (lldb_private::UserID func_id) override |
void | Dump (lldb_private::Stream &s) override |
void | DumpClangAST (lldb_private::Stream &s) override |
lldb_private::DWARFContext & | GetDWARFContext () |
const std::shared_ptr< SymbolFileDWARFDwo > & | GetDwpSymbolFile () |
lldb_private::FileSpec | GetFile (DWARFUnit &unit, size_t file_idx) |
lldb_private::StatsDuration::Duration | GetDebugInfoParseTime () override |
Return the time taken to parse the debug information. | |
lldb_private::StatsDuration::Duration | GetDebugInfoIndexTime () override |
Return the time it took to index the debug information in the object file. | |
lldb_private::StatsDuration & | GetDebugInfoParseTimeRef () |
virtual lldb::offset_t | GetVendorDWARFOpcodeSize (const lldb_private::DataExtractor &data, const lldb::offset_t data_offset, const uint8_t op) const |
virtual bool | ParseVendorDWARFOpcode (uint8_t op, const lldb_private::DataExtractor &opcodes, lldb::offset_t &offset, std::vector< lldb_private::Value > &stack) const |
lldb_private::ConstString | ConstructFunctionDemangledName (const DWARFDIE &die) |
std::optional< uint64_t > | GetFileIndex () const |
void | SetFileIndex (std::optional< uint64_t > file_index) |
![]() | |
SymbolFileCommon (lldb::ObjectFileSP objfile_sp) | |
~SymbolFileCommon () override=default | |
uint32_t | GetAbilities () override |
Get a mask of what this symbol file supports for the object file that it was constructed with. | |
Symtab * | GetSymtab () override |
ObjectFile * | GetObjectFile () override |
const ObjectFile * | GetObjectFile () const override |
ObjectFile * | GetMainObjectFile () override |
void | SectionFileAddressesChanged () override |
Notify the SymbolFile that the file addresses in the Sections for this module have been changed. | |
uint32_t | GetNumCompileUnits () override |
lldb::CompUnitSP | GetCompileUnitAtIndex (uint32_t idx) override |
llvm::Expected< lldb::TypeSystemSP > | GetTypeSystemForLanguage (lldb::LanguageType language) override |
void | Dump (Stream &s) override |
uint64_t | GetDebugInfoSize () override |
Metrics gathering functions. | |
bool | GetDebugInfoIndexWasLoadedFromCache () const override |
Accessors for the bool that indicates if the debug info index was loaded from, or saved to the module index cache. | |
void | SetDebugInfoIndexWasLoadedFromCache () override |
bool | GetDebugInfoIndexWasSavedToCache () const override |
void | SetDebugInfoIndexWasSavedToCache () override |
bool | GetDebugInfoHadFrameVariableErrors () const override |
Accessors for the bool that indicates if there was debug info, but errors stopped variables from being able to be displayed correctly. | |
void | SetDebugInfoHadFrameVariableErrors () override |
lldb::TypeSP | MakeType (lldb::user_id_t uid, ConstString name, std::optional< uint64_t > byte_size, SymbolContextScope *context, lldb::user_id_t encoding_uid, Type::EncodingDataType encoding_uid_type, const Declaration &decl, const CompilerType &compiler_qual_type, Type::ResolveState compiler_type_resolve_state, uint32_t opaque_payload=0) override |
This function is used to create types that belong to a SymbolFile. | |
lldb::TypeSP | CopyType (const lldb::TypeSP &other_type) override |
![]() | |
SymbolFile ()=default | |
~SymbolFile () override=default | |
virtual SymbolFile * | GetBackingSymbolFile () |
SymbolFileOnDemand class overrides this to return the underlying backing SymbolFile implementation that loads on-demand. | |
virtual uint32_t | GetAbilities ()=0 |
Get a mask of what this symbol file supports for the object file that it was constructed with. | |
virtual uint32_t | CalculateAbilities ()=0 |
virtual std::recursive_mutex & | GetModuleMutex () const |
Symbols file subclasses should override this to return the Module that owns the TypeSystem that this symbol file modifies type information in. | |
virtual void | InitializeObject () |
Initialize the SymbolFile object. | |
virtual bool | GetLoadDebugInfoEnabled () |
Whether debug info will be loaded or not. | |
virtual void | SetLoadDebugInfoEnabled () |
Specify debug info should be loaded. | |
virtual uint32_t | GetNumCompileUnits ()=0 |
virtual lldb::CompUnitSP | GetCompileUnitAtIndex (uint32_t idx)=0 |
virtual Symtab * | GetSymtab ()=0 |
virtual lldb::LanguageType | ParseLanguage (CompileUnit &comp_unit)=0 |
virtual XcodeSDK | ParseXcodeSDK (CompileUnit &comp_unit) |
Return the Xcode SDK comp_unit was compiled against. | |
virtual llvm::SmallSet< lldb::LanguageType, 4 > | ParseAllLanguages (CompileUnit &comp_unit) |
This function exists because SymbolFileDWARFDebugMap may extra compile units which aren't exposed as "real" compile units. | |
virtual size_t | ParseFunctions (CompileUnit &comp_unit)=0 |
virtual bool | ParseLineTable (CompileUnit &comp_unit)=0 |
virtual bool | ParseDebugMacros (CompileUnit &comp_unit)=0 |
virtual bool | ForEachExternalModule (lldb_private::CompileUnit &comp_unit, llvm::DenseSet< lldb_private::SymbolFile * > &visited_symbol_files, llvm::function_ref< bool(Module &)> lambda) |
Apply a lambda to each external lldb::Module referenced by this comp_unit . | |
virtual bool | ParseSupportFiles (CompileUnit &comp_unit, FileSpecList &support_files)=0 |
virtual size_t | ParseTypes (CompileUnit &comp_unit)=0 |
virtual bool | ParseIsOptimized (CompileUnit &comp_unit) |
virtual bool | ParseImportedModules (const SymbolContext &sc, std::vector< SourceModule > &imported_modules)=0 |
virtual size_t | ParseBlocksRecursive (Function &func)=0 |
virtual size_t | ParseVariablesForContext (const SymbolContext &sc)=0 |
virtual Type * | ResolveTypeUID (lldb::user_id_t type_uid)=0 |
virtual std::optional< ArrayInfo > | GetDynamicArrayInfoForUID (lldb::user_id_t type_uid, const lldb_private::ExecutionContext *exe_ctx)=0 |
If type_uid points to an array type, return its characteristics. | |
virtual bool | CompleteType (CompilerType &compiler_type)=0 |
virtual void | ParseDeclsForContext (CompilerDeclContext decl_ctx) |
virtual CompilerDecl | GetDeclForUID (lldb::user_id_t uid) |
virtual CompilerDeclContext | GetDeclContextForUID (lldb::user_id_t uid) |
virtual CompilerDeclContext | GetDeclContextContainingUID (lldb::user_id_t uid) |
virtual uint32_t | ResolveSymbolContext (const Address &so_addr, lldb::SymbolContextItem resolve_scope, SymbolContext &sc)=0 |
Status | GetFrameVariableError (StackFrame &frame) |
Get an error that describes why variables might be missing for a given symbol context. | |
virtual Status | CalculateFrameVariableError (StackFrame &frame) |
Subclasses will override this function to for GetFrameVariableError(). | |
virtual uint32_t | ResolveSymbolContext (const SourceLocationSpec &src_location_spec, lldb::SymbolContextItem resolve_scope, SymbolContextList &sc_list) |
virtual void | DumpClangAST (Stream &s) |
virtual void | FindGlobalVariables (ConstString name, const CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, VariableList &variables) |
virtual void | FindGlobalVariables (const RegularExpression ®ex, uint32_t max_matches, VariableList &variables) |
virtual void | FindFunctions (const Module::LookupInfo &lookup_info, const CompilerDeclContext &parent_decl_ctx, bool include_inlines, SymbolContextList &sc_list) |
virtual void | FindFunctions (const RegularExpression ®ex, bool include_inlines, SymbolContextList &sc_list) |
virtual void | FindTypes (ConstString name, const CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, llvm::DenseSet< lldb_private::SymbolFile * > &searched_symbol_files, TypeMap &types) |
virtual void | FindTypes (llvm::ArrayRef< CompilerContext > pattern, LanguageSet languages, llvm::DenseSet< lldb_private::SymbolFile * > &searched_symbol_files, TypeMap &types) |
Find types specified by a CompilerContextPattern. | |
virtual void | GetMangledNamesForFunction (const std::string &scope_qualified_name, std::vector< ConstString > &mangled_names) |
virtual void | GetTypes (lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list)=0 |
virtual void | PreloadSymbols () |
virtual llvm::Expected< lldb::TypeSystemSP > | GetTypeSystemForLanguage (lldb::LanguageType language)=0 |
virtual CompilerDeclContext | FindNamespace (ConstString name, const CompilerDeclContext &parent_decl_ctx) |
virtual ObjectFile * | GetObjectFile ()=0 |
virtual const ObjectFile * | GetObjectFile () const =0 |
virtual ObjectFile * | GetMainObjectFile ()=0 |
virtual std::vector< std::unique_ptr< CallEdge > > | ParseCallEdgesInFunction (UserID func_id) |
virtual void | AddSymbols (Symtab &symtab) |
virtual void | SectionFileAddressesChanged ()=0 |
Notify the SymbolFile that the file addresses in the Sections for this module have been changed. | |
virtual lldb::UnwindPlanSP | GetUnwindPlan (const Address &address, const RegisterInfoResolver &resolver) |
virtual llvm::Expected< lldb::addr_t > | GetParameterStackSize (Symbol &symbol) |
Return the number of stack bytes taken up by the parameters to this function. | |
virtual void | Dump (Stream &s)=0 |
virtual uint64_t | GetDebugInfoSize ()=0 |
Metrics gathering functions. | |
virtual StatsDuration::Duration | GetDebugInfoParseTime () |
Return the time taken to parse the debug information. | |
virtual StatsDuration::Duration | GetDebugInfoIndexTime () |
Return the time it took to index the debug information in the object file. | |
virtual ModuleList | GetDebugInfoModules () |
Get the additional modules that this symbol file uses to parse debug info. | |
virtual bool | GetDebugInfoHadFrameVariableErrors () const =0 |
Accessors for the bool that indicates if there was debug info, but errors stopped variables from being able to be displayed correctly. | |
virtual void | SetDebugInfoHadFrameVariableErrors ()=0 |
virtual lldb::TypeSP | MakeType (lldb::user_id_t uid, ConstString name, std::optional< uint64_t > byte_size, SymbolContextScope *context, lldb::user_id_t encoding_uid, Type::EncodingDataType encoding_uid_type, const Declaration &decl, const CompilerType &compiler_qual_type, Type::ResolveState compiler_type_resolve_state, uint32_t opaque_payload=0)=0 |
virtual lldb::TypeSP | CopyType (const lldb::TypeSP &other_type)=0 |
![]() | |
PluginInterface ()=default | |
virtual | ~PluginInterface ()=default |
virtual llvm::StringRef | GetPluginName ()=0 |
PluginInterface (const PluginInterface &)=delete | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Protected Types | |
typedef llvm::DenseMap< const DWARFDebugInfoEntry *, lldb_private::Type * > | DIEToTypePtr |
typedef llvm::DenseMap< const DWARFDebugInfoEntry *, lldb::VariableSP > | DIEToVariableSP |
typedef llvm::DenseMap< const DWARFDebugInfoEntry *, lldb::opaque_compiler_type_t > | DIEToClangType |
typedef llvm::DenseMap< lldb::opaque_compiler_type_t, DIERef > | ClangTypeToDIE |
typedef llvm::SetVector< lldb_private::Type * > | TypeSet |
typedef lldb_private::RangeDataVector< lldb::addr_t, lldb::addr_t, lldb_private::Variable * > | GlobalVariableMap |
typedef std::unordered_map< lldb::offset_t, lldb_private::DebugMacrosSP > | DebugMacrosMap |
typedef std::set< DIERef > | DIERefSet |
typedef llvm::StringMap< DIERefSet > | NameToOffsetMap |
Static Private Attributes | |
static char | ID |
LLVM RTTI support. | |
Friends | |
class | SymbolFileDWARFDebugMap |
class | SymbolFileDWARFDwo |
class | DebugMapModule |
class | DWARFCompileUnit |
class | DWARFDIE |
class | DWARFASTParserClang |
bool | isA (const void *ClassID) const override |
LLVM RTTI support. | |
static bool | classof (const SymbolFile *obj) |
Definition at line 62 of file SymbolFileDWARF.h.
|
protected |
Definition at line 351 of file SymbolFileDWARF.h.
|
protected |
Definition at line 541 of file SymbolFileDWARF.h.
|
protected |
Definition at line 549 of file SymbolFileDWARF.h.
|
protected |
Definition at line 350 of file SymbolFileDWARF.h.
|
protected |
Definition at line 345 of file SymbolFileDWARF.h.
|
protected |
Definition at line 347 of file SymbolFileDWARF.h.
typedef std::map<lldb_private::ConstString, lldb::ModuleSP> SymbolFileDWARF::ExternalTypeModuleMap |
Definition at line 257 of file SymbolFileDWARF.h.
|
protected |
Definition at line 496 of file SymbolFileDWARF.h.
|
protected |
Definition at line 550 of file SymbolFileDWARF.h.
|
protected |
Definition at line 488 of file SymbolFileDWARF.h.
SymbolFileDWARF::SymbolFileDWARF | ( | lldb::ObjectFileSP | objfile_sp, |
lldb_private::SectionList * | dwo_section_list | ||
) |
|
overridedefault |
|
protecteddelete |
|
protected |
Definition at line 784 of file SymbolFileDWARF.cpp.
References DWARFDebugInfo::ContainsTypeUnits(), DebugInfo(), DWARFDebugInfo::GetNumUnits(), DWARFDebugInfo::GetUnitAtIndex(), and m_lldb_cu_to_dwarf_unit.
Referenced by CalculateNumCompileUnits(), GetDWARFUnitIndex(), and ParseCompileUnit().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 517 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolFile::Blocks, lldb_private::SymbolFile::CompileUnits, DebugAbbrev(), DW_DIE_OFFSET_MAX_BITSIZE, error(), lldb::eSectionTypeDWARFDebugAbbrev, lldb::eSectionTypeDWARFDebugInfo, lldb::eSectionTypeDWARFDebugLine, lldb::eSectionTypeDWARFDebugStr, lldb_private::ObjectFile::eTypeDebugInfo, lldb_private::SectionList::FindSectionByName(), lldb_private::SectionList::FindSectionByType(), lldb_private::SymbolFile::Functions, lldb_private::Section::GetChildren(), GetDWARFMachOSegmentName(), lldb_private::Section::GetFileSize(), DWARFDebugAbbrev::GetUnsupportedForms(), lldb_private::SymbolFile::GlobalVariables, lldb_private::SymbolFile::LineTables, lldb_private::SymbolFile::LocalVariables, lldb_private::SymbolFileCommon::m_objfile_sp, and lldb_private::SymbolFile::VariableTypes.
|
overridevirtual |
Subclasses will override this function to for GetFrameVariableError().
This allows GetFrameVariableError() to set the member variable m_debug_info_had_variable_errors correctly without users having to do it manually which is error prone.
Reimplemented from lldb_private::SymbolFile.
Definition at line 4227 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolContext::comp_unit, DWARFUnit::ExtractUnitDIEIfNeeded(), lldb_private::Status::Fail(), GetDWARFCompileUnit(), DWARFUnit::GetDWARFLanguageType(), DWARFUnit::GetDwoError(), GetModuleMutex(), lldb_private::StackFrame::GetSymbolContext(), and DWARFUnit::HasAny().
|
overrideprotectedvirtual |
Implements lldb_private::SymbolFileCommon.
Definition at line 810 of file SymbolFileDWARF.cpp.
References BuildCuTranslationTable(), DebugInfo(), DWARFDebugInfo::GetNumUnits(), and m_lldb_cu_to_dwarf_unit.
|
protected |
|
inlinestatic |
Definition at line 72 of file SymbolFileDWARF.h.
References ID.
|
protected |
Definition at line 1377 of file SymbolFileDWARF.cpp.
References DWARFDIE::children().
|
protected |
Parse call site entries (DW_TAG_call_site), including any nested call site parameters (DW_TAG_call_site_parameter).
Collect call graph edges present in a function DIE.
Definition at line 3931 of file SymbolFileDWARF.cpp.
References DWARFFormValue::Address(), DWARFAttributes::AttributeAtIndex(), DWARFFormValue::BlockData(), DWARFFormValue::Boolean(), DWARFDIE::children(), CollectCallSiteParameters(), lldb::eDescriptionLevelBrief, DWARFAttributes::ExtractFormValueAtIndex(), FixupAddress(), DWARFFormValue::Form(), DWARFBaseDIE::GetAttributeValueAsUnsigned(), lldb_private::GetLog(), DWARFDIE::GetPubname(), lldb_private::StreamString::GetString(), DWARFFormValue::IsBlockForm(), LLDB_INVALID_ADDRESS, LLDB_LOG, DWARFBaseDIE::no, DWARFFormValue::Reference(), and DWARFFormValue::Unsigned().
Referenced by ParseCallEdgesInFunction().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 1529 of file SymbolFileDWARF.cpp.
References lldb_private::ConstString::AsCString(), lldb_private::ClangASTImporter::CanImport(), lldb_private::ClangASTImporter::CompleteType(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), DWARFASTParserClang::GetClangASTImporter(), DWARFBaseDIE::GetCU(), GetDIE(), DWARFDIE::GetDIE(), GetDIEToType(), GetDWARFParser(), GetForwardDeclClangTypeToDie(), DWARFBaseDIE::GetID(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), GetModuleMutex(), lldb_private::Type::GetName(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::CompilerType::GetOpaqueQualType(), DWARFBaseDIE::GetTagAsCString(), lldb_private::CompilerType::GetTypeSystem(), and lldb_private::ClangUtil::RemoveFastQualifiers().
ConstString SymbolFileDWARF::ConstructFunctionDemangledName | ( | const DWARFDIE & | die | ) |
Definition at line 874 of file SymbolFileDWARF.cpp.
References ASSERT_MODULE_LOCK, DWARFASTParser::ConstructDemangledNameFromDWARF(), DWARFBaseDIE::GetCU(), GetLanguage(), lldb_private::GetLog(), GetTypeSystemForLanguage(), DWARFBaseDIE::IsValid(), LLDB_LOG, and LLDB_LOG_ERROR.
Referenced by lldb_private::DWARFIndex::ProcessFunctionDIE().
|
static |
Definition at line 269 of file SymbolFileDWARF.cpp.
Referenced by Initialize(), and Terminate().
DWARFDebugAbbrev * SymbolFileDWARF::DebugAbbrev | ( | ) |
Definition at line 620 of file SymbolFileDWARF.cpp.
References error(), lldb_private::DataExtractor::GetByteSize(), lldb_private::GetLog(), lldb_private::DWARFContext::getOrLoadAbbrevData(), LLDB_LOG_ERROR, m_abbr, and m_context.
Referenced by CalculateAbilities().
|
static |
Definition at line 248 of file SymbolFileDWARF.cpp.
References lldb_private::PluginManager::CreateSettingForSymbolFilePlugin(), GetGlobalPluginProperties(), and lldb_private::PluginManager::GetSettingForSymbolFilePlugin().
Referenced by Initialize().
DWARFDebugInfo & SymbolFileDWARF::DebugInfo | ( | ) |
Definition at line 641 of file SymbolFileDWARF.cpp.
References LLDB_SCOPED_TIMERF, m_context, m_info, and m_info_once_flag.
Referenced by BuildCuTranslationTable(), CalculateNumCompileUnits(), FindBlockContainingSpecification(), SymbolFileDWARFDwo::FindSingleCompileUnit(), GetDIE(), SymbolFileDWARFDwo::GetDIE(), GetDWARFCompileUnit(), SymbolFileDWARFDwo::GetDWOCompileUnitForHash(), GetMangledNamesForFunction(), lldb_private::ManualDWARFIndex::Index(), ParseCompileUnitAtIndex(), ParseVariablesForContext(), DWARFFormValue::Reference(), Supports_DW_AT_APPLE_objc_complete_type(), and UpdateExternalModuleListIfNeeded().
|
protected |
Definition at line 2122 of file SymbolFileDWARF.cpp.
References lldb_private::GetLog(), lldb_private::TypeSystem::GetMinimumLanguage(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::CompilerDeclContext::GetTypeSystem(), GetTypeSystemForLanguage(), lldb_private::CompilerDeclContext::IsValid(), and LLDB_LOG_ERROR.
Referenced by FindFunctions(), FindGlobalVariables(), and FindNamespace().
|
protected |
Definition at line 2869 of file SymbolFileDWARF.cpp.
References DWARFDIE::GetDeclContextDIEs(), DWARFDIE::GetName(), DWARFBaseDIE::Tag(), and UNUSED_IF_ASSERT_DISABLED.
|
static |
Definition at line 2326 of file SymbolFileDWARF.cpp.
References DWARFBaseDIE::GetCU(), GetDWARFParser(), lldb_private::CompilerDeclContext::IsContainedInLookup(), and lldb_private::CompilerDeclContext::IsValid().
Referenced by FindNamespace(), lldb_private::ManualDWARFIndex::GetFunctions(), and lldb_private::DWARFIndex::ProcessFunctionDIE().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFileCommon.
Definition at line 4102 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolFileCommon::Dump(), and m_index.
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 4107 of file SymbolFileDWARF.cpp.
References lldb_private::Stream::AsRawOstream(), lldb::eLanguageTypeC_plus_plus, and GetTypeSystemForLanguage().
Referenced by SymbolFileDWARFDebugMap::DumpClangAST().
|
protected |
Definition at line 3610 of file SymbolFileDWARF.cpp.
References DebugInfo(), FindBlockContainingSpecification(), and GetDIE().
Referenced by FindBlockContainingSpecification(), and ParseVariablesInFunctionContextRecursive().
|
protected |
Definition at line 3620 of file SymbolFileDWARF.cpp.
References DWARFDIE::children(), DWARFDIE, FindBlockContainingSpecification(), DWARFBaseDIE::GetOffset(), DWARFDIE::GetReferencedDIE(), and DWARFBaseDIE::Tag().
|
protectedvirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 2807 of file SymbolFileDWARF.cpp.
References DEBUG_PRINTF, DIE_IS_BEING_PARSED, DWARFBaseDIE::GetAttributeValueAsUnsigned(), DWARFDIE::GetDIE(), GetDIEToType(), DWARFBaseDIE::GetID(), GetObjCClassSymbol(), m_index, lldb_private::SymbolFileCommon::m_objfile_sp, ResolveType(), DWARFBaseDIE::Supports_DW_AT_APPLE_objc_complete_type(), and DWARFBaseDIE::Tag().
Referenced by SymbolFileDWARFDebugMap::FindCompleteObjCDefinitionTypeForDIE(), and SymbolFileDWARFDwo::FindCompleteObjCDefinitionTypeForDIE().
|
protectedvirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 2950 of file SymbolFileDWARF.cpp.
References DIE_IS_BEING_PARSED, lldb_private::DW_TAG_value_to_name(), lldb::eLanguageTypeUnknown, DWARFBaseDIE::GetCU(), DWARFASTParser::GetDIEClassTemplateParams(), GetDWARFDeclContext(), GetLanguage(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), DWARFDIE::GetName(), lldb_private::Language::GetNameForLanguageType(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFBaseDIE::GetOffset(), DWARFDeclContext::GetQualifiedName(), lldb_private::ConstString::GetStringRef(), GetTypeForDIE(), GetTypeSystemForLanguage(), LLDB_LOG_ERROR, m_index, ResolveType(), and DWARFBaseDIE::Tag().
Referenced by SymbolFileDWARFDebugMap::FindDefinitionTypeForDWARFDeclContext(), and SymbolFileDWARFDwo::FindDefinitionTypeForDWARFDeclContext().
|
protected |
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 2344 of file SymbolFileDWARF.cpp.
References DeclContextMatchesThisSymbolFile(), lldb_private::ConstString::GetCString(), DWARFDIE::GetDIE(), lldb_private::GetLog(), lldb_private::Module::LookupInfo::GetLookupName(), lldb_private::ModuleChild::GetModule(), GetModuleMutex(), lldb_private::Module::LookupInfo::GetNameTypeMask(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::SymbolContextList::GetSize(), lldb_private::ConstString::GetStringRef(), lldb_private::ConstString::IsEmpty(), m_index, ResolveFunction(), and lldb_private::Module::LookupInfo::SetLookupName().
Referenced by SymbolFileDWARFDebugMap::FindFunctions().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 2416 of file SymbolFileDWARF.cpp.
References DWARFDIE::GetDIE(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), GetModuleMutex(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::RegularExpression::GetText(), LLDB_SCOPED_TIMERF, m_index, and ResolveFunction().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 2241 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolContext::comp_unit, GetCompUnitForDWARFCompUnit(), DWARFBaseDIE::GetCU(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), GetModuleMutex(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::VariableList::GetSize(), lldb_private::RegularExpression::GetText(), m_index, lldb_private::SymbolFileCommon::m_objfile_sp, lldb_private::SymbolContext::module_sp, and ParseAndAppendGlobalVariable().
|
overridevirtual |
If the actual namespace is inline (i.e., had a DW_AT_export_symbols) and a child (possibly through other layers of inline namespaces) of the namespace referred to by 'basename', allow the lookup to succeed.
Reimplemented from lldb_private::SymbolFile.
Definition at line 2153 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolContext::comp_unit, DeclContextMatchesThisSymbolFile(), lldb_private::CPlusPlusLanguage::ExtractContextAndIdentifier(), GetCompUnitForDWARFCompUnit(), lldb_private::ConstString::GetCString(), DWARFBaseDIE::GetCU(), GetDWARFParser(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), GetModuleMutex(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::VariableList::GetSize(), lldb_private::ConstString::GetStringRef(), lldb_private::VariableList::GetVariableAtIndex(), lldb_private::CompilerDeclContext::IsContainedInLookup(), m_index, lldb_private::SymbolFileCommon::m_objfile_sp, lldb_private::SymbolContext::module_sp, ParseAndAppendGlobalVariable(), lldb_private::VariableList::RemoveVariableAtIndex(), and DWARFBaseDIE::Tag().
Referenced by SymbolFileDWARFDebugMap::FindGlobalVariables(), and SymbolFileDWARFDebugMap::PrivateFindGlobalVariables().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 2634 of file SymbolFileDWARF.cpp.
References lldb_private::ConstString::AsCString(), DeclContextMatchesThisSymbolFile(), DIEInDeclContext(), lldb_private::ConstString::GetCString(), DWARFBaseDIE::GetCU(), DWARFASTParser::GetDeclContextForUIDFromDWARF(), GetDWARFParser(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), GetModuleMutex(), lldb_private::CompilerDeclContext::GetName(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), lldb_private::CompilerDeclContext::GetTypeSystem(), lldb_private::CompilerDeclContext::IsValid(), and m_index.
Referenced by SymbolFileDWARFDebugMap::FindNamespace().
|
override |
|
override |
|
protected |
If this symbol file is linked to by a debug map (see SymbolFileDWARFDebugMap), and file_addr
is a file address relative to an object file, adjust file_addr
so that it is relative to the main binary.
Returns the adjusted address, or file_addr
if no adjustment is needed, on success and LLDB_INVALID_ADDRESS otherwise.
Definition at line 899 of file SymbolFileDWARF.cpp.
References GetDebugMapSymfile(), and SymbolFileDWARFDebugMap::LinkOSOFileAddress().
Referenced by CollectCallEdges(), and ParseFunction().
|
protected |
Definition at line 906 of file SymbolFileDWARF.cpp.
References GetDebugMapSymfile(), and SymbolFileDWARFDebugMap::LinkOSOAddress().
|
override |
Definition at line 974 of file SymbolFileDWARF.cpp.
References m_external_type_modules, and UpdateExternalModuleListIfNeeded().
Referenced by SymbolFileDWARFDebugMap::ForEachExternalModule(), and DWARFASTParserClang::ParseTypeFromClangModule().
CompileUnit * SymbolFileDWARF::GetCompUnitForDWARFCompUnit | ( | DWARFCompileUnit & | dwarf_cu | ) |
Definition at line 1595 of file SymbolFileDWARF.cpp.
References GetCompUnitForDWARFCompUnit(), DWARFUnit::GetSymbolFileDWARF(), DWARFUnit::GetUserData(), DWARFUnit::IsDWOUnit(), and ParseCompileUnit().
Referenced by DWARFCompileUnit::BuildAddressRangeTable(), FindGlobalVariables(), GetCompUnitForDWARFCompUnit(), GetFile(), GetFunction(), and GetTypeForDIE().
|
static |
Definition at line 4185 of file SymbolFileDWARF.cpp.
References DWARFBaseDIE::GetCU(), and GetDWARFParser().
Referenced by GetDeclContextContainingUID().
|
overridevirtual |
Return the time it took to index the debug information in the object file.
Reimplemented from lldb_private::SymbolFile.
Definition at line 4221 of file SymbolFileDWARF.cpp.
References m_index.
|
inlineoverridevirtual |
Return the time taken to parse the debug information.
Reimplemented from lldb_private::SymbolFile.
Definition at line 313 of file SymbolFileDWARF.h.
References m_parse_time.
|
inline |
Definition at line 318 of file SymbolFileDWARF.h.
References m_parse_time.
Referenced by DWARFUnit::ExtractDIEsRWLocked(), and DWARFUnit::ExtractUnitDIENoDwoIfNeeded().
|
protected |
Definition at line 4118 of file SymbolFileDWARF.cpp.
References m_debug_map_module_wp, and m_debug_map_symfile.
Referenced by DWARFCompileUnit::BuildAddressRangeTable(), FixupAddress(), GetDIE(), GetDwoSymbolFileForCompileUnit(), GetTypeList(), GetTypeSystemForLanguage(), GetUniqueDWARFASTTypeMap(), ParseCompileUnit(), ParseLineTable(), ParseVariableDIE(), and Supports_DW_AT_APPLE_objc_complete_type().
DWARFDebugRanges * SymbolFileDWARF::GetDebugRanges | ( | ) |
Definition at line 663 of file SymbolFileDWARF.cpp.
References lldb_private::DataExtractor::GetByteSize(), lldb_private::DWARFContext::getOrLoadRangesData(), LLDB_SCOPED_TIMERF, m_context, and m_ranges.
Referenced by DWARFUnit::FindRnglistFromOffset().
|
static |
Definition at line 4172 of file SymbolFileDWARF.cpp.
References DWARFBaseDIE::GetCU(), and GetDWARFParser().
Referenced by DWARFASTParserClang::GetClangDeclForDIE(), and GetDeclForUID().
|
static |
Definition at line 4178 of file SymbolFileDWARF.cpp.
References DWARFBaseDIE::GetCU(), and GetDWARFParser().
Referenced by DWARFASTParserClang::GetClangDeclForDIE(), and GetDeclContextForUID().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1435 of file SymbolFileDWARF.cpp.
References GetContainingDeclContext(), GetDIE(), and GetModuleMutex().
Referenced by SymbolFileDWARFDebugMap::GetDeclContextContainingUID().
Definition at line 2710 of file SymbolFileDWARF.cpp.
References DWARFDIE, GetDeclContextDIEContainingDIE(), DWARFDIE::GetParent(), DWARFDIE::GetReferencedDIE(), and DWARFBaseDIE::Tag().
Referenced by GetDeclContextDIEContainingDIE(), ParseVariableDIE(), and ResolveTypeUID().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1422 of file SymbolFileDWARF.cpp.
References GetDeclContext(), GetDIE(), and GetModuleMutex().
Referenced by SymbolFileDWARFDebugMap::GetDeclContextForUID(), and ParseType().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1409 of file SymbolFileDWARF.cpp.
References GetDecl(), GetDIE(), and GetModuleMutex().
Reimplemented in SymbolFileDWARFDwo.
Definition at line 1648 of file SymbolFileDWARF.cpp.
References DebugInfo(), DIERef::die_offset(), DW_INVALID_OFFSET, DWARFDIE, DIERef::file_index(), GetDebugMapSymfile(), DWARFDebugInfo::GetDIE(), GetDIE(), DWARFUnit::GetDwoSymbolFile(), GetModuleMutex(), DWARFDebugInfo::GetUnitAtIndex(), DIERef::k_file_index_mask, and m_dwp_symfile.
Referenced by CompleteType(), FindBlockContainingSpecification(), GetDeclContextContainingUID(), GetDeclContextForUID(), GetDeclForUID(), SymbolFileDWARFDwo::GetDIE(), GetDIE(), GetDynamicArrayInfoForUID(), GetMangledNamesForFunction(), MergeBlockAbstractParameters(), ParseCallEdgesInFunction(), ParseVariablesForContext(), ParseVariablesInFunctionContextRecursive(), PopulateBlockVariableList(), and ResolveTypeUID().
DWARFDIE SymbolFileDWARF::GetDIE | ( | lldb::user_id_t | uid | ) |
Definition at line 1407 of file SymbolFileDWARF.cpp.
References GetDIE().
|
inlineprotectedvirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 502 of file SymbolFileDWARF.h.
References m_die_to_type.
Referenced by CompleteType(), DWARFASTParserClang::CopyUniqueClassMethodTypes(), FindCompleteObjCDefinitionTypeForDIE(), SymbolFileDWARFDwo::GetDIEToType(), and GetTypeForDIE().
|
inlineprotectedvirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 504 of file SymbolFileDWARF.h.
References m_die_to_variable_sp.
Referenced by SymbolFileDWARFDwo::GetDIEToVariable(), ParseAndAppendGlobalVariable(), and ParseVariableDIECached().
|
protectedvirtual |
Definition at line 650 of file SymbolFileDWARF.cpp.
References DebugInfo(), lldb_private::UserID::GetID(), DWARFDebugInfo::GetUnitAtIndex(), DWARFUnit::GetUserData(), and DWARFUnit::SetUserData().
Referenced by CalculateFrameVariableError(), GetDWOId(), ParseBlocksRecursive(), ParseDebugMacros(), ParseFunctions(), ParseImportedModules(), ParseIsOptimized(), ParseLanguage(), ParseLineTable(), ParseTypes(), ParseXcodeSDK(), and ResolveFunctionAndBlock().
|
inline |
Definition at line 286 of file SymbolFileDWARF.h.
References m_context.
Referenced by DWARFFormValue::Address(), DWARFFormValue::AsCString(), DWARFUnit::FindRnglistFromOffset(), DWARFUnit::GetData(), DWARFUnit::GetLocationData(), DWARFUnit::GetLoclistOffset(), DWARFUnit::GetRnglistData(), DWARFUnit::GetStringOffsetSectionItem(), DWARFUnit::ReadAddressFromDebugAddrSection(), DWARFUnit::SetDwoStrOffsetsBase(), and DWARFUnit::SetLoclistsBase().
|
static |
Definition at line 4191 of file SymbolFileDWARF.cpp.
References DWARFBaseDIE::GetCU(), DWARFDIE::GetDIE(), and DWARFBaseDIE::IsValid().
Referenced by DWARFASTParserClang::ConstructDemangledNameFromDWARF(), FindDefinitionTypeForDWARFDeclContext(), and ParseVariableDIE().
|
static |
Definition at line 4160 of file SymbolFileDWARF.cpp.
References lldb_private::GetLog(), GetTypeSystem(), and LLDB_LOG_ERROR.
Referenced by CompleteType(), DWARFASTParserClang::CopyUniqueClassMethodTypes(), DIEInDeclContext(), FindGlobalVariables(), FindNamespace(), GetContainingDeclContext(), GetDecl(), and GetDeclContext().
Definition at line 801 of file SymbolFileDWARF.cpp.
References BuildCuTranslationTable(), and m_lldb_cu_to_dwarf_unit.
Referenced by ParseCompileUnit(), and ParseCompileUnitAtIndex().
std::optional< uint64_t > SymbolFileDWARF::GetDWOId | ( | ) |
If this is a DWARF object with a single CU, return its DW_AT_dwo_id.
Definition at line 1697 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolFileCommon::GetCompileUnitAtIndex(), GetDWARFCompileUnit(), and lldb_private::SymbolFileCommon::GetNumCompileUnits().
Referenced by UpdateExternalModuleListIfNeeded().
std::shared_ptr< SymbolFileDWARFDwo > SymbolFileDWARF::GetDwoSymbolFileForCompileUnit | ( | DWARFUnit & | dwarf_cu, |
const DWARFDebugInfoEntry & | cu_die | ||
) |
Definition at line 1708 of file SymbolFileDWARF.cpp.
References lldb_private::FileSpec::AppendPathComponent(), lldb_private::Status::createWithFormat(), lldb_private::ObjectFile::FindPlugin(), DWARFDebugInfoEntry::GetAttributeValueAsString(), GetDebugMapSymfile(), DWARFUnit::GetDWOId(), GetDWOName(), GetDwpSymbolFile(), lldb_private::UserID::GetID(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFDebugInfoEntry::GetOffset(), lldb_private::FileSpec::GetPath(), lldb_private::FileSystem::Instance(), lldb_private::FileSpec::IsRelative(), m_dwo_warning_issued, lldb_private::SymbolFileCommon::m_objfile_sp, lldb_private::FileSpec::PrependPathComponent(), lldb_private::FileSystem::Resolve(), DWARFUnit::SetDwoError(), and lldb_private::FileSpec::SetFile().
Referenced by DWARFUnit::ExtractUnitDIEIfNeeded().
const std::shared_ptr< SymbolFileDWARFDwo > & SymbolFileDWARF::GetDwpSymbolFile | ( | ) |
Definition at line 4129 of file SymbolFileDWARF.cpp.
References lldb_private::ObjectFile::FindPlugin(), lldb_private::Target::GetDefaultDebugFileSearchPaths(), lldb_private::ModuleSpec::GetFileSpec(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::ModuleSpec::GetSymbolFileSpec(), lldb_private::FileSystem::Instance(), DIERef::k_file_index_mask, lldb_private::Symbols::LocateExecutableSymbolFile(), m_dwp_symfile, m_dwp_symfile_once_flag, and lldb_private::SymbolFileCommon::m_objfile_sp.
Referenced by GetDwoSymbolFileForCompileUnit(), and lldb_private::ManualDWARFIndex::Index().
|
overridevirtual |
If type_uid
points to an array type, return its characteristics.
To support variable-length array types, this function takes an optional ExecutionContext
. If exe_ctx
is non-null, the dynamic characteristics for that context are returned.
Implements lldb_private::SymbolFile.
Definition at line 1456 of file SymbolFileDWARF.cpp.
References GetDIE(), GetModuleMutex(), and DWARFASTParser::ParseChildArrayInfo().
Referenced by SymbolFileDWARFDebugMap::GetDynamicArrayInfoForUID().
lldb::ModuleSP SymbolFileDWARF::GetExternalModule | ( | lldb_private::ConstString | name | ) |
Definition at line 1638 of file SymbolFileDWARF.cpp.
References m_external_type_modules, and UpdateExternalModuleListIfNeeded().
Referenced by GetContainingClangModule().
|
inline |
Return the list of Clang modules imported by this SymbolFile.
Definition at line 260 of file SymbolFileDWARF.h.
References m_external_type_modules.
Definition at line 1036 of file SymbolFileDWARF.cpp.
References GetCompUnitForDWARFCompUnit(), and GetTypeUnitSupportFiles().
Referenced by DWARFUnit::GetFile().
|
inline |
Definition at line 338 of file SymbolFileDWARF.h.
References m_file_index.
Referenced by SymbolFileDWARFDebugMap::AddOSOARanges(), NameToDIE::FindAllEntriesForUnit(), SymbolFileDWARFDwo::GetDIE(), DWARFBaseDIE::GetDIERef(), lldb_private::DebugNamesDWARFIndex::GetGlobalVariables(), and lldb_private::DebugNamesDWARFIndex::ToDIERef().
|
inlineprotectedvirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 510 of file SymbolFileDWARF.h.
References m_forward_decl_clang_type_to_die.
Referenced by CompleteType(), SymbolFileDWARFDwo::GetForwardDeclClangTypeToDie(), and HasForwardDeclForClangType().
|
inlineprotectedvirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 506 of file SymbolFileDWARF.h.
References m_forward_decl_die_to_clang_type.
Referenced by SymbolFileDWARFDwo::GetForwardDeclDieToClangType().
|
protected |
Definition at line 1617 of file SymbolFileDWARF.cpp.
References lldb_private::Function::CalculateSymbolContextModule(), lldb_private::SymbolContext::Clear(), lldb_private::SymbolContext::comp_unit, lldb_private::CompileUnit::FindFunctionByUID(), lldb_private::SymbolContext::function, GetCompUnitForDWARFCompUnit(), DWARFBaseDIE::GetCU(), DWARFBaseDIE::GetID(), lldb_private::SymbolContext::module_sp, and ParseFunction().
Referenced by GetTypeForDIE(), and ResolveFunction().
|
protected |
Definition at line 1897 of file SymbolFileDWARF.cpp.
References error(), lldb_private::DWARFExpressionList::Evaluate(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::Value::GetScalar(), lldb_private::Value::GetValueType(), LLDB_INVALID_ADDRESS, m_global_aranges_up, and lldb_private::Scalar::ULongLong().
|
static |
Definition at line 4210 of file SymbolFileDWARF.cpp.
References DWARFUnit::GetDWARFLanguageType(), and LanguageTypeFromDWARF().
Referenced by ConstructFunctionDemangledName(), FindDefinitionTypeForDWARFDeclContext(), GetTypeSystem(), lldb_private::ManualDWARFIndex::IndexUnit(), ParseFunction(), DWARFASTParserClang::ParseFunctionFromDWARF(), ParseLanguage(), DWARFASTParserClang::ParseStructureLikeDIE(), ParseType(), DWARFASTParserClang::ParseTypeModifier(), and ParseVariableDIE().
|
static |
Same as GetLanguage() but reports all C++ versions as C++ (no version).
Definition at line 4214 of file SymbolFileDWARF.cpp.
References DWARFUnit::GetDWARFLanguageType(), and LanguageTypeFromDWARF().
Referenced by DWARFASTParserClang::ParseTypeFromClangModule().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 2439 of file SymbolFileDWARF.cpp.
References DebugInfo(), GetDIE(), DWARFUnit::GetDwoSymbolFile(), DWARFDIE::GetMangledName(), GetMangledNamesForFunction(), DWARFDebugInfo::GetNumUnits(), DWARFDebugInfo::GetUnitAtIndex(), and m_function_scope_qualified_name_map.
Referenced by GetMangledNamesForFunction().
|
overridevirtual |
Symbols file subclasses should override this to return the Module that owns the TypeSystem that this symbol file modifies type information in.
Reimplemented from lldb_private::SymbolFile.
Definition at line 2115 of file SymbolFileDWARF.cpp.
References lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), and m_debug_map_module_wp.
Referenced by CalculateFrameVariableError(), CompleteType(), FindFunctions(), FindGlobalVariables(), FindNamespace(), GetDeclContextContainingUID(), GetDeclContextForUID(), GetDeclForUID(), GetDIE(), GetDynamicArrayInfoForUID(), GetTypeList(), ParseBlocksRecursive(), ParseDebugMacros(), ParseFunctions(), ParseImportedModules(), ParseIsOptimized(), ParseLanguage(), ParseLineTable(), ParseTypes(), ParseVariablesForContext(), ParseXcodeSDK(), PreloadSymbols(), and ResolveTypeUID().
|
protected |
Definition at line 2761 of file SymbolFileDWARF.cpp.
References lldb_private::Symtab::eDebugNo, lldb::eSymbolTypeObjCClass, lldb_private::Symtab::eVisibilityAny, lldb_private::Symtab::FindFirstSymbolWithNameAndType(), and lldb_private::SymbolFileCommon::m_objfile_sp.
Referenced by FindCompleteObjCDefinitionTypeForDIE().
|
virtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 1612 of file SymbolFileDWARF.cpp.
References m_index.
Referenced by SymbolFileDWARFDwo::GetObjCMethods().
Definition at line 390 of file SymbolFileDWARF.cpp.
References DWARFDIE, DWARFDIE::GetParent(), and DWARFBaseDIE::Tag().
Referenced by ParseAndAppendGlobalVariable(), ParseVariableDIE(), and DWARFASTParserClang::UpdateSymbolContextScopeForType().
|
static |
Definition at line 265 of file SymbolFileDWARF.cpp.
Referenced by Initialize().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 226 of file SymbolFileDWARF.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 89 of file SymbolFileDWARF.h.
Referenced by GetPluginName(), SymbolFileDWARFDebugMap::GetSymbolFileAsSymbolFileDWARF(), and Initialize().
|
protected |
Definition at line 2676 of file SymbolFileDWARF.cpp.
References DIE_IS_BEING_PARSED, DWARFDIE, GetCompUnitForDWARFCompUnit(), DWARFBaseDIE::GetCU(), DWARFDIE::GetDIE(), GetDIEToType(), GetFunction(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFDebugInfoEntry::GetParent(), DWARFDIE::GetParent(), ParseType(), and DWARFDebugInfoEntry::Tag().
Referenced by FindDefinitionTypeForDWARFDeclContext(), and ResolveType().
|
overrideprotectedvirtual |
Reimplemented from lldb_private::SymbolFileCommon.
Definition at line 274 of file SymbolFileDWARF.cpp.
References GetDebugMapSymfile(), GetModuleMutex(), and lldb_private::SymbolFileCommon::GetTypeList().
|
protected |
Definition at line 280 of file SymbolFileDWARF.cpp.
References DWARFDIE::children(), DWARFBaseDIE::GetOffset(), GetTypes(), ResolveTypeUID(), and DWARFBaseDIE::Tag().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Referenced by GetTypes(), and SymbolFileDWARFDebugMap::GetTypes().
|
static |
Definition at line 4156 of file SymbolFileDWARF.cpp.
References GetLanguage(), DWARFUnit::GetSymbolFileDWARF(), and GetTypeSystemForLanguage().
Referenced by GetDWARFParser().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFileCommon.
Reimplemented in SymbolFileDWARFDwo.
Definition at line 433 of file SymbolFileDWARF.cpp.
References GetDebugMapSymfile(), and lldb_private::SymbolFileCommon::m_objfile_sp.
Referenced by ConstructFunctionDemangledName(), DeclContextMatchesThisSymbolFile(), DumpClangAST(), FindDefinitionTypeForDWARFDeclContext(), GetTypeSystem(), SymbolFileDWARFDwo::GetTypeSystemForLanguage(), ParseFunction(), and ParseType().
|
protected |
Definition at line 1048 of file SymbolFileDWARF.cpp.
References DW_INVALID_OFFSET, elapsed(), error(), lldb_private::DWARFContext::GetAsLLVM(), lldb_private::DWARFDataExtractor::GetAsLLVM(), DWARFUnit::GetLineTableOffset(), lldb_private::GetLog(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::DWARFContext::getOrLoadLineData(), DWARFUnit::GetPathStyle(), LLDB_LOG_ERROR, m_context, m_parse_time, m_type_unit_support_files, and ParseSupportFilesFromPrologue().
Referenced by GetFile().
|
protectedvirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 424 of file SymbolFileDWARF.cpp.
References GetDebugMapSymfile(), SymbolFileDWARFDebugMap::GetUniqueDWARFASTTypeMap(), and m_unique_ast_type_map.
Referenced by SymbolFileDWARFDwo::GetUniqueDWARFASTTypeMap().
|
inlinevirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 323 of file SymbolFileDWARF.h.
References LLDB_INVALID_OFFSET.
Referenced by GetOpcodeDataSize(), and SymbolFileDWARFDwo::GetVendorDWARFOpcodeSize().
bool SymbolFileDWARF::HasForwardDeclForClangType | ( | const lldb_private::CompilerType & | compiler_type | ) |
Definition at line 1512 of file SymbolFileDWARF.cpp.
References lldb_private::ClangASTImporter::CanImport(), lldb_private::CompilerType::TypeSystemSPWrapper::dyn_cast_or_null(), DWARFASTParserClang::GetClangASTImporter(), GetForwardDeclClangTypeToDie(), lldb_private::CompilerType::GetOpaqueQualType(), lldb_private::CompilerType::GetTypeSystem(), and lldb_private::ClangUtil::RemoveFastQualifiers().
Referenced by SymbolFileDWARFDebugMap::CompleteType().
|
static |
Definition at line 240 of file SymbolFileDWARF.cpp.
References CreateInstance(), DebuggerInitialize(), GetPluginDescriptionStatic(), GetPluginNameStatic(), lldb_private::LogChannelDWARF::Initialize(), SymbolFileDWARFDebugMap::Initialize(), and lldb_private::PluginManager::RegisterPlugin().
|
protected |
Definition at line 494 of file SymbolFileDWARF.cpp.
References InitializeFirstCodeAddressRecursive(), LLDB_INVALID_ADDRESS, m_first_code_address, and lldb_private::SymbolFileCommon::m_objfile_sp.
Referenced by InitializeObject().
|
protected |
Definition at line 501 of file SymbolFileDWARF.cpp.
References lldb::eSectionTypeCode, InitializeFirstCodeAddressRecursive(), and m_first_code_address.
Referenced by InitializeFirstCodeAddress(), and InitializeFirstCodeAddressRecursive().
|
overridevirtual |
Initialize the SymbolFile object.
The SymbolFile object with the best set of abilities (detected in "uint32_t SymbolFile::GetAbilities()) will have this function called if it is chosen to parse an object file. More complete initialization can happen in this function which will get called prior to any other functions in the SymbolFile protocol.
Reimplemented from lldb_private::SymbolFile.
Definition at line 445 of file SymbolFileDWARF.cpp.
References lldb_private::Stream::AsRawOstream(), lldb_private::AppleDWARFIndex::Create(), lldb_private::DebugNamesDWARFIndex::Create(), lldb::eDescriptionLevelBrief, lldb::eSectionTypeDWARFAppleNames, lldb::eSectionTypeDWARFAppleNamespaces, lldb::eSectionTypeDWARFAppleObjC, lldb::eSectionTypeDWARFAppleTypes, lldb::eSectionTypeDWARFDebugNames, lldb_private::DataExtractor::GetByteSize(), lldb_private::StreamString::GetData(), GetGlobalPluginProperties(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::DWARFContext::getOrLoadStrData(), InitializeFirstCodeAddress(), LLDB_LOG_ERROR, LoadSectionData(), m_context, and m_index.
|
inlineoverridevirtual |
LLVM RTTI support.
Reimplemented from lldb_private::SymbolFileCommon.
Reimplemented in SymbolFileDWARFDwo.
Definition at line 69 of file SymbolFileDWARF.h.
References ID.
Referenced by SymbolFileDWARFDwo::isA().
|
static |
Definition at line 4199 of file SymbolFileDWARF.cpp.
References lldb::eLanguageTypeMipsAssembler.
Referenced by GetLanguage(), GetLanguageFamily(), and ParseCompileUnit().
|
protectedvirtual |
Definition at line 605 of file SymbolFileDWARF.cpp.
References lldb_private::DataExtractor::Clear(), lldb_private::SectionList::FindSectionByType(), and lldb_private::SymbolFileCommon::m_objfile_sp.
Referenced by InitializeObject().
|
protected |
Definition at line 3709 of file SymbolFileDWARF.cpp.
References GetDIE(), DWARFBaseDIE::GetDIERef(), DWARFDIE::GetFirstChild(), DWARFDIE::GetReferencedDIE(), DWARFDIE::GetSibling(), DWARFBaseDIE::HasChildren(), and DWARFBaseDIE::Tag().
Referenced by ParseVariablesInFunctionContextRecursive().
|
protecteddelete |
|
protected |
Definition at line 3653 of file SymbolFileDWARF.cpp.
References lldb_private::VariableList::AddVariableIfUnique(), lldb_private::SymbolContext::comp_unit, DWARFDIE::GetDIE(), GetDIEToVariable(), DWARFBaseDIE::GetID(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), GetParentSymbolContextDIE(), DWARFBaseDIE::GetTagAsCString(), lldb_private::CompileUnit::GetVariableList(), ParseVariableDIECached(), and DWARFBaseDIE::Tag().
Referenced by FindGlobalVariables().
|
protected |
Definition at line 1256 of file SymbolFileDWARF.cpp.
References lldb_private::Block::AddChild(), lldb_private::Block::AddRange(), DWARFBaseDIE::Clear(), lldb_private::Block::FinalizeRanges(), lldb_private::Range< B, S >::GetByteSize(), DWARFDIE::GetDIENamesAndRanges(), lldb_private::RangeVector< B, S, N >::GetEntryRef(), DWARFDIE::GetFirstChild(), lldb_private::UserID::GetID(), DWARFBaseDIE::GetID(), lldb_private::RangeVector< B, S, N >::GetMinRangeBase(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::Range< B, S >::GetRangeBase(), lldb_private::Range< B, S >::GetRangeEnd(), DWARFDIE::GetSibling(), lldb_private::RangeVector< B, S, N >::GetSize(), lldb_private::CompileUnit::GetSupportFiles(), DWARFBaseDIE::HasChildren(), LLDB_INVALID_ADDRESS, ParseBlocksRecursive(), lldb_private::Block::SetInlinedFunctionInfo(), and DWARFBaseDIE::Tag().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 3162 of file SymbolFileDWARF.cpp.
References DIERef::die_offset(), lldb_private::Function::GetBlock(), lldb_private::Function::GetCompileUnit(), DWARFUnit::GetDIE(), GetDWARFCompileUnit(), lldb_private::UserID::GetID(), GetModuleMutex(), DWARFUnit::GetNonSkeletonUnit(), LLDB_INVALID_ADDRESS, lldbassert, and ParseBlocksRecursive().
Referenced by ParseBlocksRecursive(), and SymbolFileDWARFDebugMap::ParseBlocksRecursive().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 4090 of file SymbolFileDWARF.cpp.
References CollectCallEdges(), GetDIE(), lldb_private::UserID::GetID(), lldb_private::SymbolFileCommon::GetObjectFile(), and DWARFBaseDIE::IsValid().
Referenced by SymbolFileDWARFDebugMap::ParseCallEdgesInFunction().
|
protected |
Definition at line 703 of file SymbolFileDWARF.cpp.
References BuildCuTranslationTable(), lldb::eLanguageTypeUnknown, lldb_private::eLazyBoolCalculate, SymbolFileDWARFDebugMap::GetCompileUnit(), GetDebugMapSymfile(), DWARFBaseDIE::GetDIE(), DWARFUnit::GetDWARFLanguageType(), GetDWARFUnitIndex(), GetDWOName(), lldb_private::UserID::GetID(), DWARFBaseDIE::GetName(), DWARFCompileUnit::GetNonSkeletonUnit(), DWARFUnit::GetPathStyle(), DWARFUnit::GetUnitDIEOnly(), DWARFUnit::GetUserData(), DWARFUnit::GetVersion(), LanguageTypeFromDWARF(), m_debug_map_symfile, lldb_private::SymbolFileCommon::m_objfile_sp, MakeAbsoluteAndRemap(), ParseSupportFiles(), lldb_private::SymbolFileCommon::SetCompileUnitAtIndex(), and DWARFUnit::SetUserData().
Referenced by GetCompUnitForDWARFCompUnit(), and ParseCompileUnitAtIndex().
|
overrideprotectedvirtual |
Implements lldb_private::SymbolFileCommon.
Definition at line 816 of file SymbolFileDWARF.cpp.
References ASSERT_MODULE_LOCK, DebugInfo(), GetDWARFUnitIndex(), and ParseCompileUnit().
lldb_private::DebugMacrosSP SymbolFileDWARF::ParseDebugMacros | ( | lldb::offset_t * | offset | ) |
Definition at line 1210 of file SymbolFileDWARF.cpp.
References elapsed(), lldb_private::DataExtractor::GetByteSize(), lldb_private::DWARFContext::getOrLoadMacroData(), lldb_private::DWARFContext::getOrLoadStrData(), m_context, m_debug_macros_map, m_parse_time, DWARFDebugMacroHeader::OffsetIs64Bit(), DWARFDebugMacroHeader::ParseHeader(), and DWARFDebugMacroEntry::ReadMacroEntries().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 1232 of file SymbolFileDWARF.cpp.
References DW_INVALID_OFFSET, DWARFBaseDIE::GetAttributeValueAsUnsigned(), GetDWARFCompileUnit(), GetModuleMutex(), DWARFUnit::GetUnitDIEOnly(), ParseDebugMacros(), and lldb_private::CompileUnit::SetDebugMacros().
Referenced by ParseDebugMacros(), SymbolFileDWARFDebugMap::ParseDebugMacros(), and DWARFDebugMacroEntry::ReadMacroEntries().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1399 of file SymbolFileDWARF.cpp.
References DWARFASTParser::EnsureAllDIEsInDeclContextHaveBeenParsed(), lldb_private::TypeSystem::GetDWARFParser(), and lldb_private::CompilerDeclContext::GetTypeSystem().
Referenced by SymbolFileDWARFDebugMap::ParseDeclsForContext().
|
protected |
Definition at line 826 of file SymbolFileDWARF.cpp.
References ASSERT_MODULE_LOCK, FixupAddress(), lldb_private::AddressRange::GetBaseAddress(), DWARFBaseDIE::GetCU(), DWARFDIE::GetDIE(), GetLanguage(), lldb_private::GetLog(), lldb_private::RangeVector< B, S, N >::GetMaxRangeEnd(), lldb_private::RangeVector< B, S, N >::GetMinRangeBase(), DWARFBaseDIE::GetModule(), GetTypeSystemForLanguage(), lldb_private::Address::IsValid(), DWARFBaseDIE::IsValid(), LLDB_INVALID_ADDRESS, LLDB_LOG_ERROR, m_first_code_address, DWARFASTParser::ParseFunctionFromDWARF(), lldb_private::Address::ResolveAddressUsingFileSections(), and lldb_private::AddressRange::SetByteSize().
Referenced by GetFunction(), ParseFunctions(), and ResolveFunctionAndBlock().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 951 of file SymbolFileDWARF.cpp.
References DWARFUnit::dies(), lldb_private::CompileUnit::FindFunctionByUID(), GetDWARFCompileUnit(), DWARFBaseDIE::GetID(), GetModuleMutex(), DWARFUnit::GetNonSkeletonUnit(), LLDB_SCOPED_TIMER, and ParseFunction().
Referenced by SymbolFileDWARFDebugMap::ParseFunctions().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 1092 of file SymbolFileDWARF.cpp.
References DWARFDIE::children(), lldb_private::SymbolContext::comp_unit, DWARFUnit::DIE(), DWARFBaseDIE::GetAttributeValueAsString(), GetDWARFCompileUnit(), lldb_private::CompileUnit::GetLanguage(), GetModuleMutex(), DWARFDIE::GetParent(), lldb_private::FileSpec::GetPath(), DWARFUnit::GetPathStyle(), DWARFDIE::GetReferencedDIE(), lldb_private::ClangModulesDeclVendor::LanguageSupportsClangModules(), lldb_private::SymbolFileCommon::m_objfile_sp, MakeAbsoluteAndRemap(), lldb_private::SourceModule::path, lldb_private::SourceModule::search_path, lldb_private::SourceModule::sysroot, DWARFBaseDIE::Tag(), and UpdateExternalModuleListIfNeeded().
Referenced by SymbolFileDWARFDebugMap::ParseImportedModules().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1084 of file SymbolFileDWARF.cpp.
References GetDWARFCompileUnit(), DWARFUnit::GetIsOptimized(), GetModuleMutex(), and DWARFUnit::GetNonSkeletonUnit().
Referenced by SymbolFileDWARFDebugMap::ParseIsOptimized().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 914 of file SymbolFileDWARF.cpp.
References lldb::eLanguageTypeUnknown, GetDWARFCompileUnit(), GetLanguage(), GetModuleMutex(), and DWARFUnit::GetNonSkeletonUnit().
Referenced by SymbolFileDWARFDebugMap::ParseLanguage().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 1147 of file SymbolFileDWARF.cpp.
References lldb_private::LineTable::AppendLineEntryToSequence(), lldb_private::LineTable::CreateLineSequenceContainer(), DW_INVALID_OFFSET, elapsed(), GetDebugMapSymfile(), GetDWARFCompileUnit(), lldb_private::CompileUnit::GetLineTable(), DWARFUnit::GetLineTableOffset(), GetModuleMutex(), DWARFUnit::GetOffset(), m_context, m_first_code_address, m_parse_time, ParseLLVMLineTable(), and lldb_private::CompileUnit::SetLineTable().
Referenced by SymbolFileDWARFDebugMap::ParseLineTable().
|
protected |
|
override |
Referenced by ParseCompileUnit(), and SymbolFileDWARFDebugMap::ParseSupportFiles().
|
protected |
Definition at line 3089 of file SymbolFileDWARF.cpp.
References lldb_private::ConstString::AsCString(), DWARFBaseDIE::GetCU(), GetDeclContextForUID(), DWARFBaseDIE::GetDIERef(), DWARFBaseDIE::GetID(), GetLanguage(), lldb_private::GetLog(), lldb_private::CompilerDeclContext::GetScopeQualifiedName(), GetTypeSystemForLanguage(), LLDB_LOG_ERROR, m_function_scope_qualified_name_map, DWARFASTParser::ParseTypeFromDWARF(), and DWARFBaseDIE::Tag().
Referenced by GetTypeForDIE(), and ParseTypes().
|
protected |
Definition at line 3124 of file SymbolFileDWARF.cpp.
References DWARFBaseDIE::Clear(), lldb_private::SymbolContext::comp_unit, lldb_private::CompileUnit::FindFunctionByUID(), lldb_private::SymbolContext::function, DWARFDIE::GetFirstChild(), DWARFBaseDIE::GetID(), DWARFDIE::GetSibling(), DWARFBaseDIE::HasChildren(), ParseType(), ParseTypes(), and DWARFBaseDIE::Tag().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 3183 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolContext::comp_unit, DWARFUnit::DIE(), GetDWARFCompileUnit(), DWARFDIE::GetFirstChild(), GetModuleMutex(), DWARFBaseDIE::HasChildren(), and ParseTypes().
Referenced by ParseTypes(), and SymbolFileDWARFDebugMap::ParseTypes().
|
protected |
Definition at line 3267 of file SymbolFileDWARF.cpp.
References DWARFFormValue::AsCString(), DWARFAttributes::AttributeAtIndex(), DWARFFormValue::BlockData(), DWARFFormValue::Boolean(), lldb_private::SymbolContext::comp_unit, DWARFAttributes::CompileUnitAtIndex(), lldb_private::DWARFExpressionList::ContainsThreadLocalStorage(), lldb_private::DWARFExpression::DumpLocation(), lldb_private::Symtab::eDebugYes, lldb::eDescriptionLevelFull, lldb::eSymbolTypeData, lldb::eValueTypeInvalid, lldb::eValueTypeVariableArgument, lldb::eValueTypeVariableGlobal, lldb::eValueTypeVariableLocal, lldb::eValueTypeVariableStatic, lldb::eValueTypeVariableThreadLocal, lldb_private::Symtab::eVisibilityExtern, DWARFAttributes::ExtractFormValueAtIndex(), lldb_private::Block::FindBlockByID(), lldb_private::Symtab::FindFirstSymbolWithNameAndType(), DWARFFormValue::Form(), lldb_private::SymbolContext::function, DWARFUnit::GetAddressByteSize(), lldb_private::Symbol::GetAddressRef(), lldb_private::DWARFExpressionList::GetAlwaysValidExpr(), DWARFBaseDIE::GetAttributes(), lldb_private::Function::GetBlock(), DWARFUnit::GetByteOrder(), lldb_private::DataExtractor::GetByteSize(), lldb_private::ConstString::GetCString(), DWARFBaseDIE::GetCU(), lldb_private::StreamString::GetData(), DWARFBaseDIE::GetData(), lldb_private::DataExtractor::GetDataStart(), GetDebugMapSymfile(), GetDeclContextDIEContainingDIE(), DWARFDIE::GetDIE(), DWARFBaseDIE::GetDWARF(), GetDWARFDeclContext(), DWARFUnit::GetFile(), lldb_private::Address::GetFileAddress(), DWARFBaseDIE::GetID(), GetLanguage(), lldb_private::DWARFExpression::GetLocation_DW_OP_addr(), DWARFUnit::GetLocationData(), DWARFUnit::GetLoclistOffset(), lldb_private::ModuleChild::GetModule(), lldb_private::DWARFExpressionList::GetMutableExpressionAtAddress(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFBaseDIE::GetOffset(), GetParentSymbolContextDIE(), DWARFDeclContext::GetQualifiedNameAsConstString(), lldb_private::ObjectFile::GetSymtab(), DWARFBaseDIE::GetTagAsCString(), DWARFFormValue::GetUnit(), DWARFFormValue::IsBlockForm(), DWARFFormValue::IsDataForm(), lldb_private::DWARFExpressionList::IsValid(), DWARFFormValue::IsValid(), lldb_private::Language::LanguageIsCPlusPlus(), SymbolFileDWARFDebugMap::LinkOSOFileAddress(), lldb_private::DWARFExpressionList::LinkThreadLocalStorage(), LLDB_INVALID_ADDRESS, lldb_private::DWARFExpression::ParseDWARFLocationList(), ParseVariableDIE(), DWARFFormValue::Reference(), lldb_private::Declaration::SetColumn(), lldb_private::Declaration::SetFile(), lldb_private::DWARFExpressionList::SetFuncFileAddress(), lldb_private::Declaration::SetLine(), lldb_private::DWARFExpressionList::SetModule(), DWARFBaseDIE::Tag(), DWARFFormValue::Unsigned(), lldb_private::DWARFExpression::Update_DW_OP_addr(), lldb_private::DWARFExpression::UpdateValue(), lldb_private::DataExtractor::ValidOffset(), and lldb_private::Symbol::ValueIsAddress().
Referenced by ParseVariableDIE(), ParseVariableDIECached(), and PopulateBlockVariableList().
|
protected |
Definition at line 3247 of file SymbolFileDWARF.cpp.
References DWARFDIE::GetDIE(), GetDIEToVariable(), DWARFBaseDIE::GetDWARF(), DWARFDIE::GetReferencedDIE(), LLDB_INVALID_ADDRESS, and ParseVariableDIE().
Referenced by ParseAndAppendGlobalVariable(), and ParseVariablesForContext().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 3199 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolContext::comp_unit, DebugInfo(), lldb_private::SymbolContext::function, lldb_private::Function::GetBlock(), DWARFBaseDIE::GetCU(), GetDIE(), DWARFDIE::GetDIE(), lldb_private::UserID::GetID(), lldb_private::RangeVector< B, S, N >::GetMinRangeBase(), GetModuleMutex(), DWARFDebugInfo::GetUnitAtIndex(), lldb_private::CompileUnit::GetVariableList(), LLDB_INVALID_ADDRESS, m_index, ParseVariableDIECached(), ParseVariablesInFunctionContext(), lldb_private::Block::SetDidParseVariables(), and lldb_private::CompileUnit::SetVariableList().
Referenced by SymbolFileDWARFDebugMap::ParseVariablesForContext().
|
protected |
Definition at line 3784 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolContext::function, and ParseVariablesInFunctionContextRecursive().
Referenced by ParseVariablesForContext().
|
protected |
Definition at line 3802 of file SymbolFileDWARF.cpp.
References lldb_private::Block::FindBlockByID(), FindBlockContainingSpecification(), lldb_private::SymbolContext::function, lldb_private::Function::GetBlock(), lldb_private::Block::GetBlockVariableList(), GetDIE(), DWARFBaseDIE::GetDIERef(), DWARFDIE::GetFirstChild(), lldb_private::UserID::GetID(), DWARFBaseDIE::GetID(), DWARFBaseDIE::GetOffset(), DWARFDIE::GetSibling(), MergeBlockAbstractParameters(), ParseVariablesInFunctionContextRecursive(), PopulateBlockVariableList(), lldb_private::Block::SetVariableList(), and DWARFBaseDIE::Tag().
Referenced by ParseVariablesInFunctionContext(), and ParseVariablesInFunctionContextRecursive().
|
inlinevirtual |
Reimplemented in SymbolFileDWARFDwo.
Definition at line 330 of file SymbolFileDWARF.h.
Referenced by lldb_private::DWARFExpression::Evaluate(), and SymbolFileDWARFDwo::ParseVendorDWARFOpcode().
|
overridevirtual |
Return the Xcode SDK comp_unit was compiled against.
Reimplemented from lldb_private::SymbolFile.
Definition at line 923 of file SymbolFileDWARF.cpp.
References DWARFBaseDIE::GetAttributeValueAsString(), GetDWARFCompileUnit(), lldb_private::ModuleChild::GetModule(), GetModuleMutex(), DWARFUnit::GetNonSkeletonUnit(), DWARFUnit::GetUnitDIEOnly(), and lldb_private::SymbolFileCommon::m_objfile_sp.
Referenced by SymbolFileDWARFDebugMap::ParseXcodeSDK().
|
protected |
Definition at line 3869 of file SymbolFileDWARF.cpp.
References lldb_private::VariableList::AddVariableIfUnique(), GetDIE(), and ParseVariableDIE().
Referenced by ParseVariablesInFunctionContextRecursive().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 2103 of file SymbolFileDWARF.cpp.
References GetModuleMutex(), lldb_private::SymbolFileCommon::GetSymtab(), and m_index.
|
protected |
Definition at line 2275 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolContextList::Append(), lldb_private::SymbolContext::block, lldb_private::Address::Clear(), lldb_private::Block::FindBlockByID(), lldb_private::SymbolContext::function, lldb_private::Function::GetAddressRange(), lldb_private::AddressRange::GetBaseAddress(), lldb_private::Function::GetBlock(), GetFunction(), DWARFBaseDIE::GetID(), DWARFBaseDIE::GetOffset(), DWARFDIE::GetParent(), lldb_private::Block::GetStartAddress(), and DWARFBaseDIE::Tag().
Referenced by FindFunctions().
|
protected |
Resolve functions and (possibly) blocks for the given file address and a compile unit.
The compile unit comes from the sc argument and it must be set. The results of the lookup (if any) are written back to the symbol context.
Definition at line 1944 of file SymbolFileDWARF.cpp.
References lldb_private::SymbolContext::block, lldb_private::SymbolContext::comp_unit, lldb_private::Block::FindBlockByID(), lldb_private::CompileUnit::FindFunctionByUID(), lldb_private::SymbolContext::function, lldb_private::Function::GetBlock(), GetDWARFCompileUnit(), DWARFBaseDIE::GetID(), DWARFCompileUnit::GetNonSkeletonUnit(), DWARFCompileUnit::LookupAddress(), DWARFDIE::LookupDeepestBlock(), and ParseFunction().
|
overridevirtual |
Implements lldb_private::SymbolFile.
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Type * SymbolFileDWARF::ResolveType | ( | const DWARFDIE & | die, |
bool | assert_not_being_parsed = true , |
||
bool | resolve_function_context = false |
||
) |
Definition at line 1574 of file SymbolFileDWARF.cpp.
References DIE_IS_BEING_PARSED, lldb_private::ModuleChild::GetModule(), DWARFDIE::GetName(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFBaseDIE::GetOffset(), DWARFBaseDIE::GetTagAsCString(), and GetTypeForDIE().
Referenced by FindCompleteObjCDefinitionTypeForDIE(), FindDefinitionTypeForDWARFDeclContext(), DWARFASTParserClang::GetClangDeclContextForDIE(), DWARFDIE::ResolveType(), and ResolveTypeUID().
Definition at line 1465 of file SymbolFileDWARF.cpp.
References GetDIE(), and ResolveType().
|
protected |
Definition at line 1469 of file SymbolFileDWARF.cpp.
References GetDeclContextDIEContainingDIE(), lldb_private::GetLog(), lldb_private::ModuleChild::GetModule(), DWARFDIE::GetName(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFBaseDIE::GetOffset(), DWARFBaseDIE::GetTagAsCString(), ResolveType(), and DWARFBaseDIE::Tag().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 1445 of file SymbolFileDWARF.cpp.
References GetDIE(), and GetModuleMutex().
Referenced by GetTypes(), and SymbolFileDWARFDebugMap::ResolveTypeUID().
|
inlineprotected |
Definition at line 453 of file SymbolFileDWARF.h.
References m_debug_map_module_wp.
Referenced by DebugMapModule::GetSymbolFile().
|
inline |
Definition at line 339 of file SymbolFileDWARF.h.
References m_file_index.
Referenced by DebugMapModule::GetSymbolFile(), and SymbolFileDWARFDwo::SymbolFileDWARFDwo().
|
static |
Definition at line 513 of file SymbolFileDWARF.cpp.
Referenced by DWARFUnitHeader::extract().
bool SymbolFileDWARF::Supports_DW_AT_APPLE_objc_complete_type | ( | DWARFUnit * | cu | ) |
Definition at line 2781 of file SymbolFileDWARF.cpp.
References DebugInfo(), lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, GetDebugMapSymfile(), lldb_private::SymbolFileCommon::GetNumCompileUnits(), DWARFDebugInfo::GetUnitAtIndex(), m_debug_map_symfile, m_supports_DW_AT_APPLE_objc_complete_type, DWARFUnit::Supports_DW_AT_APPLE_objc_complete_type(), and SymbolFileDWARFDebugMap::Supports_DW_AT_APPLE_objc_complete_type().
Referenced by DWARFBaseDIE::Supports_DW_AT_APPLE_objc_complete_type(), and SymbolFileDWARFDebugMap::Supports_DW_AT_APPLE_objc_complete_type().
|
static |
Definition at line 259 of file SymbolFileDWARF.cpp.
References CreateInstance(), lldb_private::LogChannelDWARF::Terminate(), SymbolFileDWARFDebugMap::Terminate(), and lldb_private::PluginManager::UnregisterPlugin().
|
protected |
Definition at line 1794 of file SymbolFileDWARF.cpp.
References lldb_private::FileSpec::AppendPathComponent(), DebugInfo(), error(), lldb_private::ModuleSpec::GetArchitecture(), DWARFBaseDIE::GetAttributeValueAsString(), DWARFBaseDIE::GetDIE(), GetDWOId(), GetDWOName(), lldb_private::ModuleSpec::GetFileSpec(), lldb_private::ModuleChild::GetModule(), lldb_private::SymbolFileCommon::GetNumCompileUnits(), lldb_private::SymbolFileCommon::GetObjectFile(), DWARFBaseDIE::GetOffset(), lldb_private::FileSpec::GetPath(), lldb_private::ModuleList::GetSharedModule(), DWARFDebugInfo::GetUnitAtIndex(), DWARFUnit::GetUnitDIEOnly(), DWARFBaseDIE::HasChildren(), lldb_private::FileSystem::Instance(), lldb_private::FileSpec::IsRelative(), m_external_type_modules, m_fetched_external_modules, lldb_private::SymbolFileCommon::m_objfile_sp, lldb_private::FileSystem::Resolve(), and lldb_private::FileSpec::SetFile().
Referenced by ForEachExternalModule(), GetExternalModule(), and ParseImportedModules().
|
friend |
Definition at line 77 of file SymbolFileDWARF.h.
|
friend |
Definition at line 80 of file SymbolFileDWARF.h.
|
friend |
Definition at line 78 of file SymbolFileDWARF.h.
|
friend |
Definition at line 79 of file SymbolFileDWARF.h.
Referenced by FindBlockContainingSpecification(), GetDeclContextDIEContainingDIE(), GetDIE(), GetParentSymbolContextDIE(), and GetTypeForDIE().
|
friend |
Definition at line 75 of file SymbolFileDWARF.h.
|
friend |
Definition at line 76 of file SymbolFileDWARF.h.
|
staticprivate |
LLVM RTTI support.
Definition at line 64 of file SymbolFileDWARF.h.
|
protected |
Definition at line 537 of file SymbolFileDWARF.h.
Referenced by DebugAbbrev().
|
protected |
Definition at line 532 of file SymbolFileDWARF.h.
Referenced by DebugAbbrev(), DebugInfo(), GetDebugRanges(), GetDWARFContext(), SymbolFileDWARFDwo::GetDWOCompileUnitForHash(), GetTypeUnitSupportFiles(), InitializeObject(), ParseDebugMacros(), ParseLineTable(), and SymbolFileDWARFDwo::SymbolFileDWARFDwo().
|
protected |
Definition at line 542 of file SymbolFileDWARF.h.
Referenced by ParseDebugMacros().
|
protected |
Definition at line 526 of file SymbolFileDWARF.h.
Referenced by GetDebugMapSymfile(), GetModuleMutex(), and SetDebugMapModule().
|
protected |
Definition at line 527 of file SymbolFileDWARF.h.
Referenced by GetDebugMapSymfile(), ParseCompileUnit(), and Supports_DW_AT_APPLE_objc_complete_type().
|
protected |
Definition at line 554 of file SymbolFileDWARF.h.
Referenced by GetDIEToType().
|
protected |
Definition at line 555 of file SymbolFileDWARF.h.
Referenced by GetDIEToVariable().
|
protected |
Definition at line 569 of file SymbolFileDWARF.h.
Referenced by GetDwoSymbolFileForCompileUnit().
|
protected |
Definition at line 530 of file SymbolFileDWARF.h.
Referenced by GetDIE(), and GetDwpSymbolFile().
|
protected |
Definition at line 529 of file SymbolFileDWARF.h.
Referenced by GetDwpSymbolFile().
|
protected |
Definition at line 544 of file SymbolFileDWARF.h.
Referenced by ForEachExternalModule(), GetExternalModule(), getExternalTypeModules(), and UpdateExternalModuleListIfNeeded().
|
protected |
Definition at line 546 of file SymbolFileDWARF.h.
Referenced by UpdateExternalModuleListIfNeeded().
|
protected |
If this DWARF file a .DWO file or a DWARF .o file on mac when no dSYM file is being used, this file index will be set to a valid value that can be used in DIERef objects which will contain an index that identifies the .DWO or .o file.
Definition at line 574 of file SymbolFileDWARF.h.
Referenced by GetFileIndex(), and SetFileIndex().
|
protected |
DWARF does not provide a good way for traditional (concatenating) linkers to invalidate debug info describing dead-stripped code.
These linkers will keep the debug info but resolve any addresses referring to such code as zero (BFD) or a small positive integer (zero + relocation addend – GOLD). Try to filter out this debug info by comparing it to the lowest code address in the module.
Definition at line 567 of file SymbolFileDWARF.h.
Referenced by InitializeFirstCodeAddress(), InitializeFirstCodeAddressRecursive(), ParseFunction(), and ParseLineTable().
|
protected |
Definition at line 557 of file SymbolFileDWARF.h.
Referenced by GetForwardDeclClangTypeToDie().
|
protected |
Definition at line 556 of file SymbolFileDWARF.h.
Referenced by GetForwardDeclDieToClangType().
|
protected |
Definition at line 551 of file SymbolFileDWARF.h.
Referenced by GetMangledNamesForFunction(), and ParseType().
|
protected |
Definition at line 538 of file SymbolFileDWARF.h.
Referenced by GetGlobalAranges().
|
protected |
Definition at line 545 of file SymbolFileDWARF.h.
Referenced by Dump(), FindCompleteObjCDefinitionTypeForDIE(), FindDefinitionTypeForDWARFDeclContext(), FindFunctions(), FindGlobalVariables(), FindNamespace(), GetDebugInfoIndexTime(), GetObjCMethods(), InitializeObject(), ParseVariablesForContext(), and PreloadSymbols().
|
protected |
Definition at line 535 of file SymbolFileDWARF.h.
Referenced by DebugInfo().
|
protected |
Definition at line 534 of file SymbolFileDWARF.h.
Referenced by DebugInfo().
|
protected |
Definition at line 560 of file SymbolFileDWARF.h.
Referenced by BuildCuTranslationTable(), CalculateNumCompileUnits(), and GetDWARFUnitIndex().
|
protected |
Definition at line 568 of file SymbolFileDWARF.h.
Referenced by GetDebugInfoParseTime(), GetDebugInfoParseTimeRef(), GetTypeUnitSupportFiles(), ParseDebugMacros(), and ParseLineTable().
|
protected |
Definition at line 552 of file SymbolFileDWARF.h.
Referenced by GetDebugRanges().
|
protected |
Definition at line 547 of file SymbolFileDWARF.h.
Referenced by Supports_DW_AT_APPLE_objc_complete_type().
|
protected |
Definition at line 559 of file SymbolFileDWARF.h.
Referenced by GetTypeUnitSupportFiles().
|
protected |
Definition at line 553 of file SymbolFileDWARF.h.
Referenced by GetUniqueDWARFASTTypeMap().