9 #ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBUTIL_H
10 #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBUTIL_H
16 #include "llvm/ADT/Optional.h"
17 #include "llvm/DebugInfo/CodeView/CodeView.h"
18 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
19 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
20 #include "llvm/DebugInfo/PDB/PDBTypes.h"
45 const llvm::codeview::TagRecord &
asTag()
const {
53 const llvm::codeview::ClassRecord &
asClass()
const {
58 const llvm::codeview::EnumRecord &
asEnum()
const {
63 const llvm::codeview::UnionRecord &
asUnion()
const {
68 llvm::StringRef
name()
const {
105 llvm::codeview::TypeIndex
type;
107 llvm::Optional<Variable::RangeList>
ranges;
111 llvm::pdb::PDB_SymType
CVSymToPDBSym(llvm::codeview::SymbolKind kind);
112 llvm::pdb::PDB_SymType
CVTypeToPDBType(llvm::codeview::TypeLeafKind kind);
127 return sym.Module > 0;
134 bool IsForwardRefUdt(
const PdbTypeSymId &
id, llvm::pdb::TpiStream &tpi);
135 bool IsTagRecord(
const PdbTypeSymId &
id, llvm::pdb::TpiStream &tpi);
139 llvm::codeview::TypeIndex
146 lldb::ModuleSP module);
154 size_t GetSizeOfType(PdbTypeSymId
id, llvm::pdb::TpiStream &tpi);