LLDB mainline
|
#include <SymbolFilePDB.h>
Classes | |
struct | SecContribInfo |
Public Member Functions | |
SymbolFilePDB (lldb::ObjectFileSP objfile_sp) | |
~SymbolFilePDB () override | |
uint32_t | CalculateAbilities () override |
void | InitializeObject () override |
Initialize the SymbolFile object. | |
lldb::LanguageType | ParseLanguage (lldb_private::CompileUnit &comp_unit) override |
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 | ParseSupportFiles (lldb_private::CompileUnit &comp_unit, lldb_private::SupportFileList &support_files) 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::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 |
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 | AddSymbols (lldb_private::Symtab &symtab) override |
void | FindTypes (const lldb_private::TypeQuery &match, lldb_private::TypeResults &results) override |
Find types using a type-matching object that contains all search parameters. | |
void | FindTypesByRegex (const lldb_private::RegularExpression ®ex, uint32_t max_matches, lldb_private::TypeMap &types) |
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, bool only_root_namespaces) override |
Finds a namespace of name name and whose parent context is parent_decl_ctx. | |
llvm::StringRef | GetPluginName () override |
llvm::pdb::IPDBSession & | GetPDBSession () |
const llvm::pdb::IPDBSession & | GetPDBSession () const |
void | DumpClangAST (lldb_private::Stream &s) override |
Public Member Functions inherited from lldb_private::SymbolFileCommon | |
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 (bool load_all_debug_info=false) 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 |
Public Member Functions inherited from lldb_private::SymbolFile | |
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, SupportFileList &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 std::vector< CompilerContext > | GetCompilerContextForUID (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 (const TypeQuery &query, TypeResults &results) |
Find types using a type-matching object that contains all search parameters. | |
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, bool only_root_namespaces=false) |
Finds a namespace of name name and whose parent context is 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 (bool load_all_debug_info=false)=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 bool | GetSeparateDebugInfo (StructuredData::Dictionary &d, bool errors_only) |
Return true if separate debug info files are supported and this function succeeded, false otherwise. | |
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 |
std::unordered_map< lldb::CompUnitSP, Args > | GetCompileOptions () |
Returns a map of compilation unit to the compile option arguments associated with that compilation unit. | |
Public Member Functions inherited from lldb_private::PluginInterface | |
PluginInterface ()=default | |
virtual | ~PluginInterface ()=default |
virtual llvm::StringRef | GetPluginName ()=0 |
PluginInterface (const PluginInterface &)=delete | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
static void | Initialize () |
static void | Terminate () |
static void | DebuggerInitialize (lldb_private::Debugger &debugger) |
static llvm::StringRef | GetPluginNameStatic () |
static llvm::StringRef | GetPluginDescriptionStatic () |
static lldb_private::SymbolFile * | CreateInstance (lldb::ObjectFileSP objfile_sp) |
Static Public Member Functions inherited from lldb_private::SymbolFileCommon | |
static bool | classof (const SymbolFileCommon *obj) |
Static Public Member Functions inherited from lldb_private::SymbolFile | |
static SymbolFile * | FindPlugin (lldb::ObjectFileSP objfile_sp) |
static bool | classof (const SymbolFile *obj) |
Private Types | |
using | SecContribsMap = std::map< uint32_t, std::vector< SecContribInfo > > |
typedef std::vector< lldb_private::Type * > | TypeCollection |
Private Member Functions | |
uint32_t | CalculateNumCompileUnits () override |
lldb::CompUnitSP | ParseCompileUnitAtIndex (uint32_t index) override |
lldb::CompUnitSP | ParseCompileUnitForUID (uint32_t id, uint32_t index=UINT32_MAX) |
bool | ParseCompileUnitLineTable (lldb_private::CompileUnit &comp_unit, uint32_t match_line) |
void | BuildSupportFileIdToSupportFileIndexMap (const llvm::pdb::PDBSymbolCompiland &pdb_compiland, llvm::DenseMap< uint32_t, uint32_t > &index_map) const |
void | FindTypesByName (llvm::StringRef name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, lldb_private::TypeMap &types) |
std::string | GetMangledForPDBData (const llvm::pdb::PDBSymbolData &pdb_data) |
lldb::VariableSP | ParseVariableForPDBData (const lldb_private::SymbolContext &sc, const llvm::pdb::PDBSymbolData &pdb_data) |
size_t | ParseVariables (const lldb_private::SymbolContext &sc, const llvm::pdb::PDBSymbol &pdb_data, lldb_private::VariableList *variable_list=nullptr) |
lldb::CompUnitSP | GetCompileUnitContainsAddress (const lldb_private::Address &so_addr) |
void | GetTypesForPDBSymbol (const llvm::pdb::PDBSymbol &pdb_symbol, uint32_t type_mask, TypeCollection &type_collection) |
lldb_private::Function * | ParseCompileUnitFunctionForPDBFunc (const llvm::pdb::PDBSymbolFunc &pdb_func, lldb_private::CompileUnit &comp_unit) |
void | GetCompileUnitIndex (const llvm::pdb::PDBSymbolCompiland &pdb_compiland, uint32_t &index) |
PDBASTParser * | GetPDBAstParser () |
std::unique_ptr< llvm::pdb::PDBSymbolCompiland > | GetPDBCompilandByUID (uint32_t uid) |
lldb_private::Mangled | GetMangledForPDBFunc (const llvm::pdb::PDBSymbolFunc &pdb_func) |
bool | ResolveFunction (const llvm::pdb::PDBSymbolFunc &pdb_func, bool include_inlines, lldb_private::SymbolContextList &sc_list) |
bool | ResolveFunction (uint32_t uid, bool include_inlines, lldb_private::SymbolContextList &sc_list) |
void | CacheFunctionNames () |
bool | DeclContextMatchesThisSymbolFile (const lldb_private::CompilerDeclContext &decl_ctx) |
uint32_t | GetCompilandId (const llvm::pdb::PDBSymbolData &data) |
Private Attributes | |
llvm::DenseMap< uint32_t, lldb::CompUnitSP > | m_comp_units |
llvm::DenseMap< uint32_t, lldb::TypeSP > | m_types |
llvm::DenseMap< uint32_t, lldb::VariableSP > | m_variables |
llvm::DenseMap< uint64_t, std::string > | m_public_names |
SecContribsMap | m_sec_contribs |
std::vector< lldb::TypeSP > | m_builtin_types |
std::unique_ptr< llvm::pdb::IPDBSession > | m_session_up |
std::unique_ptr< llvm::pdb::PDBSymbolExe > | m_global_scope_up |
lldb_private::UniqueCStringMap< uint32_t > | m_func_full_names |
lldb_private::UniqueCStringMap< uint32_t > | m_func_base_names |
lldb_private::UniqueCStringMap< uint32_t > | m_func_method_names |
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) |
Additional Inherited Members | |
Public Types inherited from lldb_private::SymbolFile | |
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) } |
Protected Member Functions inherited from lldb_private::SymbolFileCommon | |
virtual uint32_t | CalculateNumCompileUnits ()=0 |
virtual lldb::CompUnitSP | ParseCompileUnitAtIndex (uint32_t idx)=0 |
virtual TypeList & | GetTypeList () |
void | SetCompileUnitAtIndex (uint32_t idx, const lldb::CompUnitSP &cu_sp) |
Protected Member Functions inherited from lldb_private::SymbolFile | |
void | AssertModuleLock () |
virtual void | GetCompileOptions (std::unordered_map< lldb::CompUnitSP, lldb_private::Args > &args) |
Protected Attributes inherited from lldb_private::SymbolFileCommon | |
lldb::ObjectFileSP | m_objfile_sp |
std::optional< std::vector< lldb::CompUnitSP > > | m_compile_units |
TypeList | m_type_list |
uint32_t | m_abilities = 0 |
bool | m_calculated_abilities = false |
bool | m_index_was_loaded_from_cache = false |
bool | m_index_was_saved_to_cache = false |
bool | m_debug_info_had_variable_errors = false |
Set to true if any variable feteching errors have been found when calling GetFrameVariableError(). | |
Definition at line 25 of file SymbolFilePDB.h.
|
private |
Definition at line 168 of file SymbolFilePDB.h.
|
private |
Definition at line 201 of file SymbolFilePDB.h.
SymbolFilePDB::SymbolFilePDB | ( | lldb::ObjectFileSP | objfile_sp | ) |
Definition at line 142 of file SymbolFilePDB.cpp.
|
overridedefault |
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1401 of file SymbolFilePDB.cpp.
References lldb_private::Symtab::AddSymbol(), lldb::eSymbolTypeCode, lldb::eSymbolTypeData, lldb_private::Symtab::Finalize(), lldb_private::Symbol::GetFileAddress(), lldb_private::Symtab::GetNumSymbols(), m_global_scope_up, lldb_private::SymbolFileCommon::m_objfile_sp, and lldb_private::Symtab::SymbolAtIndex().
|
private |
Definition at line 1864 of file SymbolFilePDB.cpp.
References m_session_up.
Referenced by ParseCompileUnitLineTable().
|
private |
Definition at line 1221 of file SymbolFilePDB.cpp.
References lldb_private::UniqueCStringMap< T >::Append(), MSVCUndecoratedNameParser::DropScope(), lldb_private::CPlusPlusLanguage::IsCPPMangledName(), lldb_private::UniqueCStringMap< T >::IsEmpty(), m_func_base_names, m_func_full_names, m_func_method_names, m_global_scope_up, lldb_private::UniqueCStringMap< T >::SizeToFit(), and lldb_private::UniqueCStringMap< T >::Sort().
Referenced by FindFunctions().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 147 of file SymbolFilePDB.cpp.
References lldb_private::SymbolFile::Blocks, lldb_private::SymbolFile::CompileUnits, error(), lldb_private::SymbolFile::Functions, lldb_private::FileSpec::GetPath(), lldb_private::SymbolFile::GlobalVariables, lldb_private::SymbolFile::LineTables, lldb_private::SymbolFile::LocalVariables, lldb_private::SymbolFileCommon::m_objfile_sp, m_session_up, and lldb_private::SymbolFile::VariableTypes.
|
overrideprivatevirtual |
Implements lldb_private::SymbolFileCommon.
Definition at line 211 of file SymbolFilePDB.cpp.
References lldbassert, and m_global_scope_up.
|
inlinestatic |
Definition at line 35 of file SymbolFilePDB.h.
References ID.
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 602 of file SymbolFilePDB.cpp.
References PDBASTParser::CompleteTypeFromPDB(), lldb::eLanguageTypeC_plus_plus, lldb_private::GetLog(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::TypeSystemClang::GetPDBParser(), GetTypeSystemForLanguage(), and LLDB_LOG_ERROR.
|
static |
Definition at line 138 of file SymbolFilePDB.cpp.
Referenced by Initialize(), and Terminate().
|
static |
Definition at line 131 of file SymbolFilePDB.cpp.
Referenced by Initialize().
|
private |
Definition at line 1969 of file SymbolFilePDB.cpp.
References lldb_private::GetLog(), lldb_private::TypeSystem::GetMinimumLanguage(), lldb_private::CompilerDeclContext::GetTypeSystem(), GetTypeSystemForLanguage(), lldb_private::CompilerDeclContext::IsValid(), and LLDB_LOG_ERROR.
Referenced by FindFunctions(), and FindGlobalVariables().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1449 of file SymbolFilePDB.cpp.
References lldb_private::Stream::AsRawOstream(), lldb_private::TypeSystemClang::Dump(), lldb::eLanguageTypeC_plus_plus, lldb_private::GetLog(), GetTypeSystemForLanguage(), and LLDB_LOG_ERROR.
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1316 of file SymbolFilePDB.cpp.
References CacheFunctionNames(), DeclContextMatchesThisSymbolFile(), GetDeclContextContainingUID(), lldb_private::Module::LookupInfo::GetLookupName(), lldb_private::SymbolFile::GetModuleMutex(), lldb_private::Module::LookupInfo::GetName(), lldb_private::Module::LookupInfo::GetNameTypeMask(), lldb_private::ConstString::IsEmpty(), lldbassert, m_func_base_names, m_func_full_names, m_func_method_names, and ResolveFunction().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1372 of file SymbolFilePDB.cpp.
References CacheFunctionNames(), lldb_private::SymbolFile::GetModuleMutex(), lldb_private::RegularExpression::IsValid(), m_func_base_names, m_func_full_names, and ResolveFunction().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1162 of file SymbolFilePDB.cpp.
References lldb_private::SymbolContext::comp_unit, lldb_private::RegularExpression::Execute(), GetCompilandId(), lldb_private::SymbolFile::GetModuleMutex(), lldb_private::VariableList::GetSize(), lldb_private::RegularExpression::IsValid(), lldbassert, m_global_scope_up, lldb_private::SymbolFileCommon::m_objfile_sp, lldb_private::SymbolContext::module_sp, ParseCompileUnitForUID(), and ParseVariables().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1120 of file SymbolFilePDB.cpp.
References lldb_private::SymbolContext::comp_unit, DeclContextMatchesThisSymbolFile(), MSVCUndecoratedNameParser::DropScope(), GetCompilandId(), GetDeclContextContainingUID(), lldb_private::SymbolFile::GetModuleMutex(), lldb_private::VariableList::GetSize(), lldb_private::ConstString::GetStringRef(), lldb_private::ConstString::IsEmpty(), lldb_private::CompilerDeclContext::IsValid(), lldbassert, m_global_scope_up, lldb_private::SymbolFileCommon::m_objfile_sp, lldb_private::SymbolContext::module_sp, ParseCompileUnitForUID(), and ParseVariables().
|
overridevirtual |
Finds a namespace of name name and whose parent context is parent_decl_ctx.
If
then this function will consider all namespaces that match the name. If only_root_namespaces is true, only consider in the search those DIEs that represent top-level namespaces.
Reimplemented from lldb_private::SymbolFile.
Definition at line 1680 of file SymbolFilePDB.cpp.
References lldb_private::ConstString::AsCString(), lldb::eLanguageTypeC_plus_plus, PDBASTParser::FindNamespaceDecl(), lldb_private::GetLog(), lldb_private::SymbolFile::GetModuleMutex(), lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), lldb_private::ConstString::GetStringRef(), GetTypeSystemForLanguage(), and LLDB_LOG_ERROR.
|
overridevirtual |
Find types using a type-matching object that contains all search parameters.
[in] | query | A type matching object that contains all of the details of the type search. |
[in] | results | Any matching types will be populated into the results object using TypeMap::InsertUnique(...). |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1521 of file SymbolFilePDB.cpp.
References lldb_private::TypeResults::AlreadySearched(), lldb_private::TypeQuery::ContextMatches(), lldb_private::TypeResults::Done(), MSVCUndecoratedNameParser::DropScope(), lldb_private::TypeQuery::GetContextRef(), lldb_private::SymbolFile::GetModuleMutex(), lldb_private::ConstString::GetStringRef(), lldb_private::TypeQuery::GetTypeBasename(), lldb_private::TypeResults::InsertUnique(), m_global_scope_up, m_types, and ResolveTypeUID().
|
private |
void SymbolFilePDB::FindTypesByRegex | ( | const lldb_private::RegularExpression & | regex, |
uint32_t | max_matches, | ||
lldb_private::TypeMap & | types | ||
) |
Definition at line 1466 of file SymbolFilePDB.cpp.
References lldb_private::RegularExpression::Execute(), lldb_private::TypeMap::Insert(), m_global_scope_up, m_types, and ResolveTypeUID().
|
private |
Definition at line 1992 of file SymbolFilePDB.cpp.
References m_sec_contribs, and m_session_up.
Referenced by FindGlobalVariables(), and ParseVariablesForContext().
|
private |
Definition at line 1883 of file SymbolFilePDB.cpp.
References lldb_private::Address::GetFileAddress(), LLDB_INVALID_ADDRESS, m_session_up, and ParseCompileUnitForUID().
|
private |
Definition at line 237 of file SymbolFilePDB.cpp.
References lldb_private::SymbolFileCommon::GetNumCompileUnits(), m_global_scope_up, and UINT32_MAX.
Referenced by ParseCompileUnitForUID().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 688 of file SymbolFilePDB.cpp.
References lldb_private::TypeSystemClang::CreateDeclContext(), lldb::eLanguageTypeC_plus_plus, PDBASTParser::GetDeclContextContainingSymbol(), lldb_private::GetLog(), lldb_private::TypeSystemClang::GetPDBParser(), GetTypeSystemForLanguage(), LLDB_LOG_ERROR, and m_session_up.
Referenced by FindFunctions(), FindGlobalVariables(), and GetDeclContextForUID().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 657 of file SymbolFilePDB.cpp.
References lldb_private::TypeSystemClang::CreateDeclContext(), lldb::eLanguageTypeC_plus_plus, GetDeclContextContainingUID(), PDBASTParser::GetDeclContextForSymbol(), lldb_private::GetLog(), lldb_private::TypeSystemClang::GetPDBParser(), GetTypeSystemForLanguage(), LLDB_LOG_ERROR, and m_session_up.
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 627 of file SymbolFilePDB.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb_private::TypeSystemClang::GetCompilerDecl(), PDBASTParser::GetDeclForSymbol(), lldb_private::GetLog(), lldb_private::TypeSystemClang::GetPDBParser(), GetTypeSystemForLanguage(), LLDB_LOG_ERROR, and m_session_up.
|
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 597 of file SymbolFilePDB.cpp.
|
private |
Definition at line 917 of file SymbolFilePDB.cpp.
References m_global_scope_up, and m_public_names.
Referenced by ParseVariableForPDBData().
|
private |
Definition at line 1908 of file SymbolFilePDB.cpp.
References lldb_private::Mangled::GetDemangledName(), lldb_private::ConstString::IsEmpty(), lldbassert, m_global_scope_up, lldb_private::Mangled::SetDemangledName(), lldb_private::Mangled::SetMangledName(), and lldb_private::Mangled::SetValue().
Referenced by ParseCompileUnitFunctionForPDBFunc().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1397 of file SymbolFilePDB.cpp.
|
private |
Definition at line 1661 of file SymbolFilePDB.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb_private::GetLog(), GetTypeSystemForLanguage(), and LLDB_LOG_ERROR.
Referenced by ParseVariables().
|
private |
Definition at line 256 of file SymbolFilePDB.cpp.
References m_session_up.
Referenced by GetTypes(), ParseCompileUnitForUID(), ParseCompileUnitLineTable(), ParseFunctions(), ParseLanguage(), ParseSupportFiles(), ParseTypes(), and ParseVariablesForContext().
IPDBSession & SymbolFilePDB::GetPDBSession | ( | ) |
Definition at line 1713 of file SymbolFilePDB.cpp.
References m_session_up.
Referenced by PDBASTParser::CompleteTypeFromPDB(), and PDBASTParser::ParseDeclsForDeclContext().
const IPDBSession & SymbolFilePDB::GetPDBSession | ( | ) | const |
Definition at line 1715 of file SymbolFilePDB.cpp.
References m_session_up.
|
static |
Definition at line 133 of file SymbolFilePDB.cpp.
Referenced by Initialize().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 154 of file SymbolFilePDB.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 45 of file SymbolFilePDB.h.
Referenced by GetPluginName(), and Initialize().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 1622 of file SymbolFilePDB.cpp.
References lldb_private::SymbolContextScope::CalculateSymbolContextCompileUnit(), lldb_private::UserID::GetID(), lldb_private::SymbolFile::GetModuleMutex(), lldb_private::SymbolFileCommon::GetNumCompileUnits(), GetPDBCompilandByUID(), GetTypesForPDBSymbol(), lldb_private::TypeList::Insert(), and ParseCompileUnitAtIndex().
|
private |
Definition at line 1574 of file SymbolFilePDB.cpp.
References GetTypesForPDBSymbol(), and ResolveTypeUID().
Referenced by GetTypes(), and GetTypesForPDBSymbol().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFileCommon.
Definition at line 1651 of file SymbolFilePDB.cpp.
References lldb_private::SymbolFileCommon::m_objfile_sp.
Referenced by CompleteType(), DeclContextMatchesThisSymbolFile(), DumpClangAST(), FindNamespace(), GetDeclContextContainingUID(), GetDeclContextForUID(), GetDeclForUID(), GetPDBAstParser(), ParseCompileUnitFunctionForPDBFunc(), ParseDeclsForContext(), and ResolveTypeUID().
|
static |
Definition at line 113 of file SymbolFilePDB.cpp.
References CreateInstance(), DebuggerInitialize(), GetPluginDescriptionStatic(), GetPluginNameStatic(), lldb_private::npdb::SymbolFileNativePDB::Initialize(), lldb_private::PluginManager::RegisterPlugin(), and ShouldUseNativeReader().
|
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 201 of file SymbolFilePDB.cpp.
References LLDB_INVALID_ADDRESS, lldbassert, m_global_scope_up, lldb_private::SymbolFileCommon::m_objfile_sp, and m_session_up.
|
inlineoverridevirtual |
LLVM RTTI support.
Reimplemented from lldb_private::SymbolFileCommon.
Definition at line 32 of file SymbolFilePDB.h.
References ID.
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 448 of file SymbolFilePDB.cpp.
References lldb_private::Function::GetBlock(), lldb_private::UserID::GetID(), lldb_private::SymbolFile::GetModuleMutex(), m_session_up, and ParseFunctionBlocksForPDBSymbol().
|
overrideprivatevirtual |
Implements lldb_private::SymbolFileCommon.
Definition at line 260 of file SymbolFilePDB.cpp.
References lldb_private::SymbolFileCommon::GetNumCompileUnits(), m_global_scope_up, and ParseCompileUnitForUID().
Referenced by GetTypes().
|
private |
Definition at line 1719 of file SymbolFilePDB.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb::eLanguageTypeUnknown, lldb_private::eLazyBoolNo, GetCompileUnitIndex(), GetPDBCompilandByUID(), lldbassert, m_comp_units, lldb_private::SymbolFileCommon::m_objfile_sp, lldb_private::SymbolFileCommon::SetCompileUnitAtIndex(), TranslateLanguage(), and UINT32_MAX.
Referenced by FindGlobalVariables(), GetCompileUnitContainsAddress(), ParseCompileUnitAtIndex(), and ResolveFunction().
|
private |
Definition at line 288 of file SymbolFilePDB.cpp.
References lldb_private::CompileUnit::AddFunction(), lldb_private::CompileUnit::FindFunctionByUID(), lldb_private::AddressRange::GetBaseAddress(), PDBASTParser::GetDeclForSymbol(), lldb_private::GetLog(), GetMangledForPDBFunc(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::TypeSystemClang::GetPDBParser(), GetTypeSystemForLanguage(), lldb_private::Address::IsValid(), LLDB_INVALID_ADDRESS, LLDB_LOG_ERROR, ParseLanguage(), and ResolveTypeUID().
Referenced by ParseFunctions(), and ResolveFunction().
|
private |
Definition at line 1760 of file SymbolFilePDB.cpp.
References BuildSupportFileIdToSupportFileIndexMap(), lldb_private::UserID::GetID(), GetPDBCompilandByUID(), m_session_up, and lldb_private::CompileUnit::SetLineTable().
Referenced by ParseLineTable().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 362 of file SymbolFilePDB.cpp.
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 717 of file SymbolFilePDB.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb_private::GetLog(), lldb_private::CompilerDeclContext::GetOpaqueDeclContext(), lldb_private::TypeSystemClang::GetPDBParser(), GetTypeSystemForLanguage(), LLDB_LOG_ERROR, and PDBASTParser::ParseDeclsForDeclContext().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 336 of file SymbolFilePDB.cpp.
References lldb_private::CompileUnit::FindFunctionByUID(), lldb_private::UserID::GetID(), lldb_private::SymbolFile::GetModuleMutex(), GetPDBCompilandByUID(), and ParseCompileUnitFunctionForPDBFunc().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 391 of file SymbolFilePDB.cpp.
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 276 of file SymbolFilePDB.cpp.
References lldb::eLanguageTypeUnknown, lldb_private::UserID::GetID(), lldb_private::SymbolFile::GetModuleMutex(), GetPDBCompilandByUID(), and TranslateLanguage().
Referenced by ParseCompileUnitFunctionForPDBFunc().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 355 of file SymbolFilePDB.cpp.
References lldb_private::CompileUnit::GetLineTable(), lldb_private::SymbolFile::GetModuleMutex(), and ParseCompileUnitLineTable().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 367 of file SymbolFilePDB.cpp.
References lldb_private::SupportFileList::AppendIfUnique(), lldb_private::UserID::GetID(), lldb_private::SymbolFile::GetModuleMutex(), GetPDBCompilandByUID(), and m_session_up.
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 461 of file SymbolFilePDB.cpp.
References lldb_private::UserID::GetID(), lldb_private::SymbolFile::GetModuleMutex(), GetPDBCompilandByUID(), m_global_scope_up, and ResolveTypeUID().
|
private |
Definition at line 930 of file SymbolFilePDB.cpp.
References lldb_private::RangeVector< B, S, N >::Append(), lldb_private::SymbolContext::comp_unit, ConvertPDBLocationToDWARFExpression(), lldb::eValueTypeConstResult, lldb::eValueTypeInvalid, lldb::eValueTypeVariableArgument, lldb::eValueTypeVariableGlobal, lldb::eValueTypeVariableLocal, lldb::eValueTypeVariableStatic, lldb::eValueTypeVariableThreadLocal, lldb_private::Block::FindBlockByID(), lldb_private::SymbolContext::function, lldb_private::AddressRange::GetBaseAddress(), lldb_private::Function::GetBlock(), lldb_private::AddressRange::GetByteSize(), lldb_private::Address::GetFileAddress(), GetMangledForPDBData(), lldb_private::ModuleChild::GetModule(), lldb_private::Block::GetNumRanges(), lldb_private::SymbolFileCommon::GetObjectFile(), lldb_private::Block::GetRangeAtIndex(), m_session_up, m_variables, lldb_private::Declaration::SetColumn(), lldb_private::Declaration::SetFile(), and lldb_private::Declaration::SetLine().
Referenced by ParseVariables().
|
private |
Definition at line 1051 of file SymbolFilePDB.cpp.
References lldb_private::VariableList::AddVariableIfUnique(), lldb_private::SymbolContext::comp_unit, lldb_private::Block::FindBlockByID(), lldb_private::SymbolContext::function, lldb_private::Function::GetBlock(), lldb_private::Block::GetBlockVariableList(), PDBASTParser::GetDeclForSymbol(), GetPDBAstParser(), lldb_private::CompileUnit::GetVariableList(), m_variables, ParseVariableForPDBData(), ParseVariables(), lldb_private::Block::SetVariableList(), and lldb_private::CompileUnit::SetVariableList().
Referenced by FindGlobalVariables(), ParseVariables(), and ParseVariablesForContext().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 514 of file SymbolFilePDB.cpp.
References lldb_private::SymbolContext::comp_unit, lldb_private::SymbolContext::function, lldb_private::Function::GetBlock(), GetCompilandId(), lldb_private::UserID::GetID(), lldb_private::SymbolFile::GetModuleMutex(), GetPDBCompilandByUID(), lldb_private::CompileUnit::GetVariableList(), m_global_scope_up, m_session_up, ParseVariables(), and lldb_private::Block::SetDidParseVariables().
|
private |
Definition at line 1197 of file SymbolFilePDB.cpp.
References lldb_private::SymbolContextList::Append(), lldb_private::SymbolContext::comp_unit, lldb_private::SymbolContext::function, lldb_private::ModuleChild::GetModule(), lldb_private::SymbolContext::module_sp, ParseCompileUnitForUID(), and ParseCompileUnitFunctionForPDBFunc().
Referenced by FindFunctions(), and ResolveFunction().
|
private |
Definition at line 1213 of file SymbolFilePDB.cpp.
References m_session_up, and ResolveFunction().
|
overridevirtual |
Implements lldb_private::SymbolFile.
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 563 of file SymbolFilePDB.cpp.
References PDBASTParser::CreateLLDBTypeFromPDBType(), lldb::eLanguageTypeC_plus_plus, lldb_private::GetLog(), lldb_private::SymbolFile::GetModuleMutex(), lldb_private::TypeSystemClang::GetPDBParser(), GetTypeSystemForLanguage(), LLDB_LOG_ERROR, m_session_up, and m_types.
Referenced by FindTypes(), FindTypesByRegex(), PDBASTParser::GetDeclContextForSymbol(), PDBASTParser::GetDeclForSymbol(), GetTypesForPDBSymbol(), ParseCompileUnitFunctionForPDBFunc(), and ParseTypes().
|
static |
Definition at line 123 of file SymbolFilePDB.cpp.
References CreateInstance(), ShouldUseNativeReader(), lldb_private::npdb::SymbolFileNativePDB::Terminate(), and lldb_private::PluginManager::UnregisterPlugin().
|
staticprivate |
LLVM RTTI support.
Definition at line 27 of file SymbolFilePDB.h.
|
private |
Definition at line 243 of file SymbolFilePDB.h.
|
private |
Definition at line 236 of file SymbolFilePDB.h.
Referenced by ParseCompileUnitForUID().
|
private |
Definition at line 248 of file SymbolFilePDB.h.
Referenced by CacheFunctionNames(), and FindFunctions().
|
private |
Definition at line 247 of file SymbolFilePDB.h.
Referenced by CacheFunctionNames(), and FindFunctions().
|
private |
Definition at line 249 of file SymbolFilePDB.h.
Referenced by CacheFunctionNames(), and FindFunctions().
|
private |
Definition at line 245 of file SymbolFilePDB.h.
Referenced by AddSymbols(), CacheFunctionNames(), CalculateNumCompileUnits(), FindGlobalVariables(), FindTypes(), FindTypesByRegex(), GetCompileUnitIndex(), GetMangledForPDBData(), GetMangledForPDBFunc(), InitializeObject(), ParseCompileUnitAtIndex(), ParseTypes(), and ParseVariablesForContext().
|
private |
Definition at line 239 of file SymbolFilePDB.h.
Referenced by GetMangledForPDBData().
|
private |
Definition at line 241 of file SymbolFilePDB.h.
Referenced by GetCompilandId().
|
private |
Definition at line 244 of file SymbolFilePDB.h.
Referenced by BuildSupportFileIdToSupportFileIndexMap(), CalculateAbilities(), GetCompilandId(), GetCompileUnitContainsAddress(), GetDeclContextContainingUID(), GetDeclContextForUID(), GetDeclForUID(), GetPDBCompilandByUID(), GetPDBSession(), InitializeObject(), ParseBlocksRecursive(), ParseCompileUnitLineTable(), ParseSupportFiles(), ParseVariableForPDBData(), ParseVariablesForContext(), ResolveFunction(), and ResolveTypeUID().
|
private |
Definition at line 237 of file SymbolFilePDB.h.
Referenced by FindTypes(), FindTypesByRegex(), and ResolveTypeUID().
|
private |
Definition at line 238 of file SymbolFilePDB.h.
Referenced by ParseVariableForPDBData(), and ParseVariables().