LLDB  mainline
SymbolFilePDB.h
Go to the documentation of this file.
1 //===-- SymbolFilePDB.h -------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_PDB_SYMBOLFILEPDB_H
10 #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_PDB_SYMBOLFILEPDB_H
11 
13 #include "lldb/Symbol/SymbolFile.h"
15 #include "lldb/Utility/UserID.h"
16 
17 #include "llvm/ADT/DenseMap.h"
18 #include "llvm/DebugInfo/PDB/IPDBSession.h"
19 #include "llvm/DebugInfo/PDB/PDB.h"
20 #include "llvm/DebugInfo/PDB/PDBSymbolExe.h"
21 
22 class PDBASTParser;
23 
25  /// LLVM RTTI support.
26  static char ID;
27 
28 public:
29  /// LLVM RTTI support.
30  /// \{
31  bool isA(const void *ClassID) const override {
32  return ClassID == &ID || SymbolFile::isA(ClassID);
33  }
34  static bool classof(const SymbolFile *obj) { return obj->isA(&ID); }
35  /// \}
36 
37  // Static Functions
38  static void Initialize();
39 
40  static void Terminate();
41 
42  static void DebuggerInitialize(lldb_private::Debugger &debugger);
43 
45 
46  static const char *GetPluginDescriptionStatic();
47 
49  CreateInstance(lldb::ObjectFileSP objfile_sp);
50 
51  // Constructors and Destructors
52  SymbolFilePDB(lldb::ObjectFileSP objfile_sp);
53 
54  ~SymbolFilePDB() override;
55 
56  uint32_t CalculateAbilities() override;
57 
58  void InitializeObject() override;
59 
60  // Compile Unit function calls
61 
63  ParseLanguage(lldb_private::CompileUnit &comp_unit) override;
64 
65  size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override;
66 
67  bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override;
68 
69  bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override;
70 
72  lldb_private::FileSpecList &support_files) override;
73 
74  size_t ParseTypes(lldb_private::CompileUnit &comp_unit) override;
75 
78  std::vector<lldb_private::SourceModule> &imported_modules) override;
79 
80  size_t ParseBlocksRecursive(lldb_private::Function &func) override;
81 
82  size_t
84 
86  llvm::Optional<ArrayInfo> GetDynamicArrayInfoForUID(
87  lldb::user_id_t type_uid,
88  const lldb_private::ExecutionContext *exe_ctx) override;
89 
90  bool CompleteType(lldb_private::CompilerType &compiler_type) override;
91 
93 
96 
99 
100  void
102 
104  lldb::SymbolContextItem resolve_scope,
105  lldb_private::SymbolContext &sc) override;
106 
108  const lldb_private::SourceLocationSpec &src_location_spec,
109  lldb::SymbolContextItem resolve_scope,
110  lldb_private::SymbolContextList &sc_list) override;
111 
112  void
114  const lldb_private::CompilerDeclContext &parent_decl_ctx,
115  uint32_t max_matches,
116  lldb_private::VariableList &variables) override;
117 
119  uint32_t max_matches,
120  lldb_private::VariableList &variables) override;
121 
123  const lldb_private::CompilerDeclContext &parent_decl_ctx,
124  lldb::FunctionNameType name_type_mask,
125  bool include_inlines,
126  lldb_private::SymbolContextList &sc_list) override;
127 
129  bool include_inlines,
130  lldb_private::SymbolContextList &sc_list) override;
131 
133  const std::string &scope_qualified_name,
134  std::vector<lldb_private::ConstString> &mangled_names) override;
135 
136  void AddSymbols(lldb_private::Symtab &symtab) override;
137 
138  void
140  const lldb_private::CompilerDeclContext &parent_decl_ctx,
141  uint32_t max_matches,
142  llvm::DenseSet<lldb_private::SymbolFile *> &searched_symbol_files,
143  lldb_private::TypeMap &types) override;
144 
145  void FindTypes(llvm::ArrayRef<lldb_private::CompilerContext> pattern,
146  lldb_private::LanguageSet languages,
147  llvm::DenseSet<SymbolFile *> &searched_symbol_files,
148  lldb_private::TypeMap &types) override;
149 
151  uint32_t max_matches, lldb_private::TypeMap &types);
152 
154  lldb::TypeClass type_mask,
155  lldb_private::TypeList &type_list) override;
156 
157  llvm::Expected<lldb_private::TypeSystem &>
158  GetTypeSystemForLanguage(lldb::LanguageType language) override;
159 
162  const lldb_private::CompilerDeclContext &parent_decl_ctx) override;
163 
165 
166  uint32_t GetPluginVersion() override;
167 
168  llvm::pdb::IPDBSession &GetPDBSession();
169 
170  const llvm::pdb::IPDBSession &GetPDBSession() const;
171 
172  void DumpClangAST(lldb_private::Stream &s) override;
173 
174 private:
175  struct SecContribInfo {
179  };
180  using SecContribsMap = std::map<uint32_t, std::vector<SecContribInfo>>;
181 
183 
184  lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t index) override;
185 
186  lldb::CompUnitSP ParseCompileUnitForUID(uint32_t id,
187  uint32_t index = UINT32_MAX);
188 
190  uint32_t match_line);
191 
193  const llvm::pdb::PDBSymbolCompiland &pdb_compiland,
194  llvm::DenseMap<uint32_t, uint32_t> &index_map) const;
195 
196  void FindTypesByName(llvm::StringRef name,
197  const lldb_private::CompilerDeclContext &parent_decl_ctx,
198  uint32_t max_matches, lldb_private::TypeMap &types);
199 
200  std::string GetMangledForPDBData(const llvm::pdb::PDBSymbolData &pdb_data);
201 
202  lldb::VariableSP
204  const llvm::pdb::PDBSymbolData &pdb_data);
205 
207  const llvm::pdb::PDBSymbol &pdb_data,
208  lldb_private::VariableList *variable_list = nullptr);
209 
210  lldb::CompUnitSP
212 
213  typedef std::vector<lldb_private::Type *> TypeCollection;
214 
215  void GetTypesForPDBSymbol(const llvm::pdb::PDBSymbol &pdb_symbol,
216  uint32_t type_mask,
217  TypeCollection &type_collection);
218 
220  ParseCompileUnitFunctionForPDBFunc(const llvm::pdb::PDBSymbolFunc &pdb_func,
221  lldb_private::CompileUnit &comp_unit);
222 
223  void GetCompileUnitIndex(const llvm::pdb::PDBSymbolCompiland &pdb_compiland,
224  uint32_t &index);
225 
227 
228  std::unique_ptr<llvm::pdb::PDBSymbolCompiland>
230 
231  lldb_private::Mangled
232  GetMangledForPDBFunc(const llvm::pdb::PDBSymbolFunc &pdb_func);
233 
234  bool ResolveFunction(const llvm::pdb::PDBSymbolFunc &pdb_func,
235  bool include_inlines,
237 
238  bool ResolveFunction(uint32_t uid, bool include_inlines,
240 
241  void CacheFunctionNames();
242 
244  const lldb_private::CompilerDeclContext &decl_ctx);
245 
246  uint32_t GetCompilandId(const llvm::pdb::PDBSymbolData &data);
247 
248  llvm::DenseMap<uint32_t, lldb::CompUnitSP> m_comp_units;
249  llvm::DenseMap<uint32_t, lldb::TypeSP> m_types;
250  llvm::DenseMap<uint32_t, lldb::VariableSP> m_variables;
251  llvm::DenseMap<uint64_t, std::string> m_public_names;
252 
254 
255  std::vector<lldb::TypeSP> m_builtin_types;
256  std::unique_ptr<llvm::pdb::IPDBSession> m_session_up;
257  std::unique_ptr<llvm::pdb::PDBSymbolExe> m_global_scope_up;
258 
262 };
263 
264 #endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_PDB_SYMBOLFILEPDB_H
lldb_private::SymbolFile::SymbolFile
SymbolFile(lldb::ObjectFileSP objfile_sp)
Definition: SymbolFile.h:68
SymbolFilePDB
Definition: SymbolFilePDB.h:24
lldb_private::SymbolFile
Definition: SymbolFile.h:37
SymbolFilePDB::FindNamespace
lldb_private::CompilerDeclContext FindNamespace(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx) override
Definition: SymbolFilePDB.cpp:1674
lldb_private::ExecutionContext
Definition: ExecutionContext.h:291
SymbolFilePDB::m_func_base_names
lldb_private::UniqueCStringMap< uint32_t > m_func_base_names
Definition: SymbolFilePDB.h:260
lldb_private::RegularExpression
Definition: RegularExpression.h:18
SymbolFilePDB::FindGlobalVariables
void FindGlobalVariables(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, lldb_private::VariableList &variables) override
Definition: SymbolFilePDB.cpp:1100
SymbolFilePDB::CacheFunctionNames
void CacheFunctionNames()
Definition: SymbolFilePDB.cpp:1201
SymbolFilePDB::SecContribInfo
Definition: SymbolFilePDB.h:175
SymbolFilePDB::DebuggerInitialize
static void DebuggerInitialize(lldb_private::Debugger &debugger)
Definition: SymbolFilePDB.cpp:112
SymbolFilePDB::GetPluginNameStatic
static lldb_private::ConstString GetPluginNameStatic()
Definition: SymbolFilePDB.cpp:114
lldb_private::SourceLocationSpec
Definition: SourceLocationSpec.h:27
SymbolFilePDB::CalculateNumCompileUnits
uint32_t CalculateNumCompileUnits() override
Definition: SymbolFilePDB.cpp:197
SymbolFilePDB::GetPDBSession
llvm::pdb::IPDBSession & GetPDBSession()
Definition: SymbolFilePDB.cpp:1715
SymbolFilePDB::ParseLineTable
bool ParseLineTable(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFilePDB.cpp:341
SymbolFilePDB::ParseDeclsForContext
void ParseDeclsForContext(lldb_private::CompilerDeclContext decl_ctx) override
Definition: SymbolFilePDB.cpp:701
SymbolFilePDB::Initialize
static void Initialize()
Definition: SymbolFilePDB.cpp:94
SymbolFilePDB::~SymbolFilePDB
~SymbolFilePDB() override
Definition: SymbolFilePDB.cpp:131
SymbolFilePDB::GetDeclContextContainingUID
lldb_private::CompilerDeclContext GetDeclContextContainingUID(lldb::user_id_t uid) override
Definition: SymbolFilePDB.cpp:673
SymbolFilePDB::m_sec_contribs
SecContribsMap m_sec_contribs
Definition: SymbolFilePDB.h:253
SymbolFilePDB::GetCompilandId
uint32_t GetCompilandId(const llvm::pdb::PDBSymbolData &data)
Definition: SymbolFilePDB.cpp:1995
SymbolFilePDB::classof
static bool classof(const SymbolFile *obj)
Definition: SymbolFilePDB.h:34
lldb::LanguageType
LanguageType
Programming language type.
Definition: lldb-enumerations.h:436
lldb_private::SymbolContextList
Definition: SymbolContext.h:378
SymbolFilePDB::ParseVariables
size_t ParseVariables(const lldb_private::SymbolContext &sc, const llvm::pdb::PDBSymbol &pdb_data, lldb_private::VariableList *variable_list=nullptr)
Definition: SymbolFilePDB.cpp:1031
lldb_private::CompilerDecl
Represents a generic declaration such as a function declaration.
Definition: CompilerDecl.h:28
SymbolFilePDB::GetDeclForUID
lldb_private::CompilerDecl GetDeclForUID(lldb::user_id_t uid) override
Definition: SymbolFilePDB.cpp:613
SymbolFilePDB::FindTypes
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
lldb_private::Stream
Definition: Stream.h:28
SymbolFilePDB::BuildSupportFileIdToSupportFileIndexMap
void BuildSupportFileIdToSupportFileIndexMap(const llvm::pdb::PDBSymbolCompiland &pdb_compiland, llvm::DenseMap< uint32_t, uint32_t > &index_map) const
Definition: SymbolFilePDB.cpp:1866
UniqueCStringMap.h
lldb_private::SymbolContext
Definition: SymbolContext.h:33
SymbolFilePDB::GetPluginName
lldb_private::ConstString GetPluginName() override
Definition: SymbolFilePDB.cpp:1708
SymbolFilePDB::ParseSupportFiles
bool ParseSupportFiles(lldb_private::CompileUnit &comp_unit, lldb_private::FileSpecList &support_files) override
Definition: SymbolFilePDB.cpp:353
SymbolFilePDB::GetPDBCompilandByUID
std::unique_ptr< llvm::pdb::PDBSymbolCompiland > GetPDBCompilandByUID(uint32_t uid)
Definition: SymbolFilePDB.cpp:243
lldb_private::VariableList
Definition: VariableList.h:18
SymbolFilePDB::m_variables
llvm::DenseMap< uint32_t, lldb::VariableSP > m_variables
Definition: SymbolFilePDB.h:250
SymbolFilePDB::m_func_method_names
lldb_private::UniqueCStringMap< uint32_t > m_func_method_names
Definition: SymbolFilePDB.h:261
lldb_private::CompileUnit
Definition: CompileUnit.h:38
SymbolFilePDB::GetPDBAstParser
PDBASTParser * GetPDBAstParser()
Definition: SymbolFilePDB.cpp:1656
SymbolFilePDB::GetDynamicArrayInfoForUID
llvm::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.
Definition: SymbolFilePDB.cpp:583
SymbolFilePDB::ParseCompileUnitForUID
lldb::CompUnitSP ParseCompileUnitForUID(uint32_t id, uint32_t index=UINT32_MAX)
Definition: SymbolFilePDB.cpp:1721
SymbolFilePDB::CreateInstance
static lldb_private::SymbolFile * CreateInstance(lldb::ObjectFileSP objfile_sp)
Definition: SymbolFilePDB.cpp:124
lldb_private::Function
Definition: Function.h:413
SymbolFilePDB::GetDeclContextForUID
lldb_private::CompilerDeclContext GetDeclContextForUID(lldb::user_id_t uid) override
Definition: SymbolFilePDB.cpp:643
SymbolFilePDB::m_builtin_types
std::vector< lldb::TypeSP > m_builtin_types
Definition: SymbolFilePDB.h:255
SymbolFilePDB::m_types
llvm::DenseMap< uint32_t, lldb::TypeSP > m_types
Definition: SymbolFilePDB.h:249
SymbolFilePDB::ResolveTypeUID
lldb_private::Type * ResolveTypeUID(lldb::user_id_t type_uid) override
Definition: SymbolFilePDB.cpp:549
SymbolFilePDB::SecContribInfo::Offset
uint32_t Offset
Definition: SymbolFilePDB.h:176
SymbolFilePDB::GetMangledForPDBFunc
lldb_private::Mangled GetMangledForPDBFunc(const llvm::pdb::PDBSymbolFunc &pdb_func)
Definition: SymbolFilePDB.cpp:1910
SymbolFilePDB::ResolveSymbolContext
uint32_t ResolveSymbolContext(const lldb_private::Address &so_addr, lldb::SymbolContextItem resolve_scope, lldb_private::SymbolContext &sc) override
SymbolFilePDB::m_func_full_names
lldb_private::UniqueCStringMap< uint32_t > m_func_full_names
Definition: SymbolFilePDB.h:259
SymbolFilePDB::SymbolFilePDB
SymbolFilePDB(lldb::ObjectFileSP objfile_sp)
Definition: SymbolFilePDB.cpp:128
SymbolFilePDB::FindFunctions
void FindFunctions(lldb_private::ConstString name, const lldb_private::CompilerDeclContext &parent_decl_ctx, lldb::FunctionNameType name_type_mask, bool include_inlines, lldb_private::SymbolContextList &sc_list) override
lldb_private::ConstString
Definition: ConstString.h:40
SymbolFilePDB::ParseVariableForPDBData
lldb::VariableSP ParseVariableForPDBData(const lldb_private::SymbolContext &sc, const llvm::pdb::PDBSymbolData &pdb_data)
Definition: SymbolFilePDB.cpp:913
SymbolFilePDB::GetCompileUnitIndex
void GetCompileUnitIndex(const llvm::pdb::PDBSymbolCompiland &pdb_compiland, uint32_t &index)
Definition: SymbolFilePDB.cpp:223
SymbolFilePDB::ParseBlocksRecursive
size_t ParseBlocksRecursive(lldb_private::Function &func) override
Definition: SymbolFilePDB.cpp:434
SymbolFilePDB::GetPluginVersion
uint32_t GetPluginVersion() override
Definition: SymbolFilePDB.cpp:1713
SymbolFilePDB::GetPluginDescriptionStatic
static const char * GetPluginDescriptionStatic()
Definition: SymbolFilePDB.cpp:119
SymbolFilePDB::CalculateAbilities
uint32_t CalculateAbilities() override
Definition: SymbolFilePDB.cpp:133
SymbolFilePDB::SecContribsMap
std::map< uint32_t, std::vector< SecContribInfo > > SecContribsMap
Definition: SymbolFilePDB.h:180
lldb_private::Debugger
Definition: Debugger.h:70
string
string(SUBSTRING ${p} 10 -1 pStripped) if($
Definition: Plugins/CMakeLists.txt:38
SymbolFilePDB::m_comp_units
llvm::DenseMap< uint32_t, lldb::CompUnitSP > m_comp_units
Definition: SymbolFilePDB.h:248
SymbolFilePDB::AddSymbols
void AddSymbols(lldb_private::Symtab &symtab) override
Definition: SymbolFilePDB.cpp:1376
VariableList.h
lldb_private::UniqueCStringMap< uint32_t >
SymbolFilePDB::DeclContextMatchesThisSymbolFile
bool DeclContextMatchesThisSymbolFile(const lldb_private::CompilerDeclContext &decl_ctx)
Definition: SymbolFilePDB.cpp:1971
lldb_private::TypeMap
Definition: TypeMap.h:20
UserID.h
lldb_private::CompilerDeclContext
Represents a generic declaration context in a program.
Definition: CompilerDeclContext.h:30
SymbolFilePDB::GetTypeSystemForLanguage
llvm::Expected< lldb_private::TypeSystem & > GetTypeSystemForLanguage(lldb::LanguageType language) override
Definition: SymbolFilePDB.cpp:1647
lldb_private::SymbolContextScope
Definition: SymbolContextScope.h:64
SymbolFilePDB::m_session_up
std::unique_ptr< llvm::pdb::IPDBSession > m_session_up
Definition: SymbolFilePDB.h:256
SymbolFilePDB::ParseLanguage
lldb::LanguageType ParseLanguage(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFilePDB.cpp:263
SymbolFilePDB::m_global_scope_up
std::unique_ptr< llvm::pdb::PDBSymbolExe > m_global_scope_up
Definition: SymbolFilePDB.h:257
SymbolFilePDB::FindTypesByRegex
void FindTypesByRegex(const lldb_private::RegularExpression &regex, uint32_t max_matches, lldb_private::TypeMap &types)
Definition: SymbolFilePDB.cpp:1459
lldb_private::Symtab
Definition: Symtab.h:21
uint32_t
SymbolFilePDB::Terminate
static void Terminate()
Definition: SymbolFilePDB.cpp:104
SymbolFilePDB::GetTypesForPDBSymbol
void GetTypesForPDBSymbol(const llvm::pdb::PDBSymbol &pdb_symbol, uint32_t type_mask, TypeCollection &type_collection)
Definition: SymbolFilePDB.cpp:1568
lldb_private::Address
Definition: Address.h:59
SymbolFilePDB::ParseCompileUnitFunctionForPDBFunc
lldb_private::Function * ParseCompileUnitFunctionForPDBFunc(const llvm::pdb::PDBSymbolFunc &pdb_func, lldb_private::CompileUnit &comp_unit)
Definition: SymbolFilePDB.cpp:275
PDBASTParser
Definition: PDBASTParser.h:43
lldb_private::Type
Definition: Type.h:66
SymbolFilePDB::m_public_names
llvm::DenseMap< uint64_t, std::string > m_public_names
Definition: SymbolFilePDB.h:251
UINT32_MAX
#define UINT32_MAX
Definition: lldb-defines.h:31
SymbolFilePDB::CompleteType
bool CompleteType(lldb_private::CompilerType &compiler_type) override
Definition: SymbolFilePDB.cpp:588
SymbolFilePDB::isA
bool isA(const void *ClassID) const override
LLVM RTTI support.
Definition: SymbolFilePDB.h:31
SymbolFilePDB::ParseCompileUnitAtIndex
lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t index) override
Definition: SymbolFilePDB.cpp:247
lldb_private::CompilerType
Generic representation of a type in a programming language.
Definition: CompilerType.h:33
SymbolFilePDB::ParseCompileUnitLineTable
bool ParseCompileUnitLineTable(lldb_private::CompileUnit &comp_unit, uint32_t match_line)
Definition: SymbolFilePDB.cpp:1762
lldb::user_id_t
uint64_t user_id_t
Definition: lldb-types.h:84
lldb_private::TypeList
Definition: TypeList.h:20
SymbolFilePDB::ParseVariablesForContext
size_t ParseVariablesForContext(const lldb_private::SymbolContext &sc) override
Definition: SymbolFilePDB.cpp:500
SymbolFilePDB::InitializeObject
void InitializeObject() override
Initialize the SymbolFile object.
Definition: SymbolFilePDB.cpp:187
SymbolFilePDB::ID
static char ID
LLVM RTTI support.
Definition: SymbolFilePDB.h:26
lldb_private::LanguageSet
A SmallBitVector that represents a set of source languages (lldb::LanguageType).
Definition: TypeSystem.h:40
SymbolFilePDB::GetCompileUnitContainsAddress
lldb::CompUnitSP GetCompileUnitContainsAddress(const lldb_private::Address &so_addr)
Definition: SymbolFilePDB.cpp:1885
SymbolFilePDB::SecContribInfo::Size
uint32_t Size
Definition: SymbolFilePDB.h:177
SymbolFilePDB::GetMangledForPDBData
std::string GetMangledForPDBData(const llvm::pdb::PDBSymbolData &pdb_data)
Definition: SymbolFilePDB.cpp:900
SymbolFilePDB::TypeCollection
std::vector< lldb_private::Type * > TypeCollection
Definition: SymbolFilePDB.h:213
SymbolFilePDB::ParseImportedModules
bool ParseImportedModules(const lldb_private::SymbolContext &sc, std::vector< lldb_private::SourceModule > &imported_modules) override
Definition: SymbolFilePDB.cpp:377
SymbolFilePDB::DumpClangAST
void DumpClangAST(lldb_private::Stream &s) override
Definition: SymbolFilePDB.cpp:1443
SymbolFilePDB::GetTypes
void GetTypes(lldb_private::SymbolContextScope *sc_scope, lldb::TypeClass type_mask, lldb_private::TypeList &type_list) override
Definition: SymbolFilePDB.cpp:1618
SymbolFilePDB::ResolveFunction
bool ResolveFunction(const llvm::pdb::PDBSymbolFunc &pdb_func, bool include_inlines, lldb_private::SymbolContextList &sc_list)
Definition: SymbolFilePDB.cpp:1177
SymbolFilePDB::SecContribInfo::CompilandId
uint32_t CompilandId
Definition: SymbolFilePDB.h:178
SymbolFilePDB::ParseTypes
size_t ParseTypes(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFilePDB.cpp:447
SymbolFilePDB::GetMangledNamesForFunction
void GetMangledNamesForFunction(const std::string &scope_qualified_name, std::vector< lldb_private::ConstString > &mangled_names) override
Definition: SymbolFilePDB.cpp:1372
SymbolFilePDB::ParseDebugMacros
bool ParseDebugMacros(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFilePDB.cpp:348
SymbolFile.h
SymbolFilePDB::ParseFunctions
size_t ParseFunctions(lldb_private::CompileUnit &comp_unit) override
Definition: SymbolFilePDB.cpp:322
SymbolFilePDB::FindTypesByName
void FindTypesByName(llvm::StringRef name, const lldb_private::CompilerDeclContext &parent_decl_ctx, uint32_t max_matches, lldb_private::TypeMap &types)
Definition: SymbolFilePDB.cpp:1514