LLDB mainline
|
#include <SymbolFileDWARFDwo.h>
Public Member Functions | |
SymbolFileDWARFDwo (SymbolFileDWARF &m_base_symbol_file, lldb::ObjectFileSP objfile, uint32_t id) | |
~SymbolFileDWARFDwo () override=default | |
DWARFCompileUnit * | GetDWOCompileUnitForHash (uint64_t hash) |
void | GetObjCMethods (lldb_private::ConstString class_name, llvm::function_ref< bool(DWARFDIE die)> callback) override |
llvm::Expected< lldb::TypeSystemSP > | GetTypeSystemForLanguage (lldb::LanguageType language) override |
DWARFDIE | GetDIE (const DIERef &die_ref) override |
lldb::offset_t | GetVendorDWARFOpcodeSize (const lldb_private::DataExtractor &data, const lldb::offset_t data_offset, const uint8_t op) const override |
bool | ParseVendorDWARFOpcode (uint8_t op, const lldb_private::DataExtractor &opcodes, lldb::offset_t &offset, std::vector< lldb_private::Value > &stack) const override |
![]() | |
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 |
Static Private Attributes | |
static char | ID |
LLVM RTTI support. | |
bool | isA (const void *ClassID) const override |
LLVM RTTI support. | |
static bool | classof (const SymbolFile *obj) |
Definition at line 15 of file SymbolFileDWARFDwo.h.
SymbolFileDWARFDwo::SymbolFileDWARFDwo | ( | SymbolFileDWARF & | m_base_symbol_file, |
lldb::ObjectFileSP | objfile, | ||
uint32_t | id | ||
) |
Definition at line 27 of file SymbolFileDWARFDwo.cpp.
References lldb_private::DWARFContext::GetAsLLVM(), SymbolFileDWARF::m_context, and SymbolFileDWARF::SetFileIndex().
|
overridedefault |
|
inlinestatic |
Definition at line 25 of file SymbolFileDWARFDwo.h.
References ID.
|
overrideprotectedvirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 126 of file SymbolFileDWARFDwo.cpp.
References SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE(), and GetBaseSymbolFile().
|
overrideprotectedvirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 122 of file SymbolFileDWARFDwo.cpp.
References SymbolFileDWARF::FindDefinitionTypeForDWARFDeclContext(), and GetBaseSymbolFile().
|
protected |
If this file contains exactly one compile unit, this function will return it.
Otherwise it returns nullptr.
Definition at line 59 of file SymbolFileDWARFDwo.cpp.
References DWARFDebugInfo::ContainsTypeUnits(), SymbolFileDWARF::DebugInfo(), DWARFDebugInfo::GetNumUnits(), and DWARFDebugInfo::GetUnitAtIndex().
Referenced by GetDWOCompileUnitForHash().
|
inlineprotected |
Definition at line 72 of file SymbolFileDWARFDwo.h.
References m_base_symbol_file.
Referenced by FindCompleteObjCDefinitionTypeForDIE(), FindDefinitionTypeForDWARFDeclContext(), GetDIE(), GetDIEToType(), GetDIEToVariable(), GetForwardDeclClangTypeToDie(), GetForwardDeclDieToClangType(), GetObjCMethods(), GetTypeSystemForLanguage(), GetUniqueDWARFASTTypeMap(), GetVendorDWARFOpcodeSize(), and ParseVendorDWARFOpcode().
Reimplemented from SymbolFileDWARF.
Definition at line 139 of file SymbolFileDWARFDwo.cpp.
References SymbolFileDWARF::DebugInfo(), DIERef::file_index(), GetBaseSymbolFile(), DWARFDebugInfo::GetDIE(), SymbolFileDWARF::GetDIE(), and SymbolFileDWARF::GetFileIndex().
|
overrideprotectedvirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 93 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::GetDIEToType().
|
overrideprotectedvirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 97 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::GetDIEToVariable().
DWARFCompileUnit * SymbolFileDWARFDwo::GetDWOCompileUnitForHash | ( | uint64_t | hash | ) |
Definition at line 39 of file SymbolFileDWARFDwo.cpp.
References DIERef::DebugInfo, SymbolFileDWARF::DebugInfo(), FindSingleCompileUnit(), lldb_private::DWARFContext::GetAsLLVM(), DWARFUnit::GetDWOId(), and SymbolFileDWARF::m_context.
|
overrideprotectedvirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 107 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::GetForwardDeclClangTypeToDie().
|
overrideprotectedvirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 102 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::GetForwardDeclDieToClangType().
|
overridevirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 111 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::GetObjCMethods().
|
overridevirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 134 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::GetTypeSystemForLanguage().
|
overrideprotectedvirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 117 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::GetUniqueDWARFASTTypeMap().
|
overridevirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 81 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::GetVendorDWARFOpcodeSize().
|
inlineoverridevirtual |
LLVM RTTI support.
Reimplemented from SymbolFileDWARF.
Definition at line 22 of file SymbolFileDWARFDwo.h.
References ID, and SymbolFileDWARF::isA().
|
overridevirtual |
Reimplemented from SymbolFileDWARF.
Definition at line 87 of file SymbolFileDWARFDwo.cpp.
References GetBaseSymbolFile(), and SymbolFileDWARF::ParseVendorDWARFOpcode().
|
staticprivate |
LLVM RTTI support.
Definition at line 17 of file SymbolFileDWARFDwo.h.
|
protected |
Definition at line 78 of file SymbolFileDWARFDwo.h.
Referenced by GetBaseSymbolFile().