9#ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H
10#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H
37class PDBSymbolTypeBaseClass;
38class PDBSymbolTypeBuiltin;
39class PDBSymbolTypeUDT;
61 llvm::StringRef name);
68 typedef llvm::DenseMap<clang::CXXRecordDecl *, lldb::user_id_t>
70 typedef llvm::DenseMap<lldb::user_id_t, clang::Decl *>
UidToDeclMap;
72 typedef llvm::DenseMap<clang::DeclContext *, NamespacesSet>
74 typedef llvm::DenseMap<clang::DeclContext *, lldb::user_id_t>
84 const llvm::pdb::PDBSymbolData &data);
87 llvm::pdb::PDBSymbolTypeUDT &udt);
101 clang::CXXMethodDecl *
104 const llvm::pdb::PDBSymbolFunc &method)
const;
lldb_private::TypeSystemClang & m_ast
llvm::DenseMap< clang::CXXRecordDecl *, lldb::user_id_t > CXXRecordDeclToUidMap
clang::NamespaceDecl * FindNamespaceDecl(const clang::DeclContext *parent, llvm::StringRef name)
bool CompleteTypeFromUDT(lldb_private::SymbolFile &symbol_file, lldb_private::CompilerType &compiler_type, llvm::pdb::PDBSymbolTypeUDT &udt)
lldb_private::ClangASTImporter m_ast_importer
void AddRecordMethods(lldb_private::SymbolFile &symbol_file, lldb_private::CompilerType &record_type, PDBFuncSymbolEnumerator &methods_enum)
NamespacesSet m_namespaces
lldb::TypeSP CreateLLDBTypeFromPDBType(const llvm::pdb::PDBSymbol &type)
DeclContextToUidMap m_decl_context_to_uid
clang::DeclContext * GetDeclContextForSymbol(const llvm::pdb::PDBSymbol &symbol)
lldb_private::ClangASTImporter & GetClangASTImporter()
llvm::DenseMap< clang::DeclContext *, NamespacesSet > ParentToNamespacesMap
void ParseDeclsForDeclContext(const clang::DeclContext *decl_context)
llvm::pdb::ConcreteSymbolEnumerator< llvm::pdb::PDBSymbolData > PDBDataSymbolEnumerator
void AddRecordBases(lldb_private::SymbolFile &symbol_file, lldb_private::CompilerType &record_type, int record_kind, PDBBaseClassSymbolEnumerator &bases_enum, lldb_private::ClangASTImporter::LayoutInfo &layout_info) const
void AddRecordMembers(lldb_private::SymbolFile &symbol_file, lldb_private::CompilerType &record_type, PDBDataSymbolEnumerator &members_enum, lldb_private::ClangASTImporter::LayoutInfo &layout_info)
std::set< clang::NamespaceDecl * > NamespacesSet
UidToDeclMap m_uid_to_decl
bool CompleteTypeFromPDB(lldb_private::CompilerType &compiler_type)
bool AddEnumValue(lldb_private::CompilerType enum_type, const llvm::pdb::PDBSymbolData &data)
llvm::pdb::ConcreteSymbolEnumerator< llvm::pdb::PDBSymbolTypeBaseClass > PDBBaseClassSymbolEnumerator
llvm::pdb::ConcreteSymbolEnumerator< llvm::pdb::PDBSymbolFunc > PDBFuncSymbolEnumerator
ParentToNamespacesMap m_parent_to_namespaces
clang::Decl * GetDeclForSymbol(const llvm::pdb::PDBSymbol &symbol)
llvm::DenseMap< clang::DeclContext *, lldb::user_id_t > DeclContextToUidMap
clang::DeclContext * GetDeclContextContainingSymbol(const llvm::pdb::PDBSymbol &symbol)
llvm::DenseMap< lldb::user_id_t, clang::Decl * > UidToDeclMap
clang::CXXMethodDecl * AddRecordMethod(lldb_private::SymbolFile &symbol_file, lldb_private::CompilerType &record_type, const llvm::pdb::PDBSymbolFunc &method) const
CXXRecordDeclToUidMap m_forward_decl_to_uid
Manages and observes all Clang AST node importing in LLDB.
Generic representation of a type in a programming language.
Provides public interface for all SymbolFiles.
A TypeSystem implementation based on Clang.
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Type > TypeSP