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 void | ResetStatistics () |
Reset the statistics for the symbol 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 143 of file SymbolFilePDB.cpp.
|
overridedefault |
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 1387 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 1850 of file SymbolFilePDB.cpp.
References m_session_up.
Referenced by ParseCompileUnitLineTable().
|
private |
Definition at line 1208 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 148 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 212 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 589 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 139 of file SymbolFilePDB.cpp.
Referenced by Initialize(), and Terminate().
|
static |
Definition at line 132 of file SymbolFilePDB.cpp.
Referenced by Initialize().
|
private |
Definition at line 1955 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 1435 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 1302 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 1358 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 1149 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 1107 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 1666 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 1507 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 1452 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 1978 of file SymbolFilePDB.cpp.
References m_sec_contribs, and m_session_up.
Referenced by FindGlobalVariables(), and ParseVariablesForContext().
|
private |
Definition at line 1869 of file SymbolFilePDB.cpp.
References lldb_private::Address::GetFileAddress(), LLDB_INVALID_ADDRESS, m_session_up, and ParseCompileUnitForUID().
|
private |
Definition at line 238 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 675 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 644 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 614 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 584 of file SymbolFilePDB.cpp.
|
private |
Definition at line 904 of file SymbolFilePDB.cpp.
References m_global_scope_up, and m_public_names.
Referenced by ParseVariableForPDBData().
|
private |
Definition at line 1894 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 1383 of file SymbolFilePDB.cpp.
|
private |
Definition at line 1647 of file SymbolFilePDB.cpp.
References lldb::eLanguageTypeC_plus_plus, lldb_private::GetLog(), GetTypeSystemForLanguage(), and LLDB_LOG_ERROR.
Referenced by ParseVariables().
|
private |
Definition at line 257 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 1699 of file SymbolFilePDB.cpp.
References m_session_up.
Referenced by PDBASTParser::CompleteTypeFromPDB(), and PDBASTParser::ParseDeclsForDeclContext().
const IPDBSession & SymbolFilePDB::GetPDBSession | ( | ) | const |
Definition at line 1701 of file SymbolFilePDB.cpp.
References m_session_up.
|
static |
Definition at line 134 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 1608 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 1560 of file SymbolFilePDB.cpp.
References GetTypesForPDBSymbol(), and ResolveTypeUID().
Referenced by GetTypes(), and GetTypesForPDBSymbol().
|
overridevirtual |
Reimplemented from lldb_private::SymbolFileCommon.
Definition at line 1637 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 114 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 202 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 435 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 261 of file SymbolFilePDB.cpp.
References lldb_private::SymbolFileCommon::GetNumCompileUnits(), m_global_scope_up, and ParseCompileUnitForUID().
Referenced by GetTypes().
|
private |
Definition at line 1705 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 289 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 1746 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 363 of file SymbolFilePDB.cpp.
|
overridevirtual |
Reimplemented from lldb_private::SymbolFile.
Definition at line 704 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 337 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 392 of file SymbolFilePDB.cpp.
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 277 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 356 of file SymbolFilePDB.cpp.
References lldb_private::CompileUnit::GetLineTable(), lldb_private::SymbolFile::GetModuleMutex(), and ParseCompileUnitLineTable().
|
overridevirtual |
Implements lldb_private::SymbolFile.
Definition at line 368 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 448 of file SymbolFilePDB.cpp.
References lldb_private::UserID::GetID(), lldb_private::SymbolFile::GetModuleMutex(), GetPDBCompilandByUID(), m_global_scope_up, and ResolveTypeUID().
|
private |
Definition at line 917 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 1038 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 501 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 1184 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 1200 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 550 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 124 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().