9#ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBUTIL_H
10#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBUTIL_H
16#include "llvm/DebugInfo/CodeView/CodeView.h"
17#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
18#include "llvm/DebugInfo/CodeView/TypeRecord.h"
19#include "llvm/DebugInfo/PDB/PDBTypes.h"
44 const llvm::codeview::TagRecord &
asTag()
const {
52 const llvm::codeview::ClassRecord &
asClass()
const {
57 const llvm::codeview::EnumRecord &
asEnum()
const {
62 const llvm::codeview::UnionRecord &
asUnion()
const {
67 llvm::StringRef
name()
const {
104 llvm::codeview::TypeIndex
type;
125 return sym.Module > 0;
137llvm::codeview::TypeIndex
A class that describes a single lexical block.
"lldb/Expression/DWARFExpressionList.h" Encapsulates a range map from file address range to a single ...
PdbIndex - Lazy access to the important parts of a PDB file.
bool SymbolHasAddress(const llvm::codeview::CVSymbol &sym)
llvm::StringRef DropNameScope(llvm::StringRef name)
llvm::pdb::PDB_SymType CVTypeToPDBType(llvm::codeview::TypeLeafKind kind)
size_t GetTypeSizeForSimpleKind(llvm::codeview::SimpleTypeKind kind)
SegmentOffset GetSegmentAndOffset(const llvm::codeview::CVSymbol &sym)
lldb::BasicType GetCompilerTypeForSimpleKind(llvm::codeview::SimpleTypeKind kind)
VariableInfo GetVariableNameInfo(llvm::codeview::CVSymbol symbol)
SegmentOffsetLength GetSegmentOffsetAndLength(const llvm::codeview::CVSymbol &sym)
bool IsTagRecord(llvm::codeview::CVType cvt)
bool IsValidRecord(const RecordT &sym)
llvm::codeview::TypeIndex LookThroughModifierRecord(llvm::codeview::CVType modifier)
VariableInfo GetVariableLocationInfo(PdbIndex &index, PdbCompilandSymId var_id, Block &func_block, lldb::ModuleSP module)
bool IsForwardRefUdt(llvm::codeview::CVType cvt)
lldb::AccessType TranslateMemberAccess(llvm::codeview::MemberAccess access)
llvm::codeview::TypeIndex GetFieldListIndex(llvm::codeview::CVType cvt)
llvm::pdb::PDB_SymType CVSymToPDBSym(llvm::codeview::SymbolKind kind)
size_t GetSizeOfType(PdbTypeSymId id, llvm::pdb::TpiStream &tpi)
PdbTypeSymId GetBestPossibleDecl(PdbTypeSymId id, llvm::pdb::TpiStream &tpi)
bool IsClassStructUnion(llvm::codeview::CVType cvt)
bool SymbolIsCode(const llvm::codeview::CVSymbol &sym)
A class that represents a running process on the host machine.
BasicType
Basic types enumeration for the public API SBType::GetBasicType().
std::shared_ptr< lldb_private::Module > ModuleSP
llvm::codeview::EnumRecord cvenum
const llvm::codeview::UnionRecord & asUnion() const
static CVTagRecord create(llvm::codeview::CVType type)
const llvm::codeview::ClassRecord & asClass() const
CVTagRecord(llvm::codeview::EnumRecord &&e)
llvm::codeview::UnionRecord cvunion
llvm::codeview::ClassRecord cvclass
const llvm::codeview::EnumRecord & asEnum() const
CVTagRecord(llvm::codeview::ClassRecord &&c)
const llvm::codeview::TagRecord & asTag() const
llvm::StringRef name() const
CVTagRecord(llvm::codeview::UnionRecord &&u)
SegmentOffsetLength()=default
SegmentOffsetLength(uint16_t s, uint32_t o, uint32_t l)
SegmentOffset(uint16_t s, uint32_t o)
DWARFExpressionList location
llvm::codeview::TypeIndex type