class PDBSymbol
Declaration
class PDBSymbol { /* full declaration omitted */ };
Description
PDBSymbol defines the base of the inheritance hierarchy for concrete symbol types (e.g. functions, executables, vtables, etc). All concrete symbol types inherit from PDBSymbol and expose the exact set of methods that are valid for that particular symbol type, as described in the Microsoft reference "Lexical and Class Hierarchy of Symbol Types": https://msdn.microsoft.com/en-us/library/370hs6k4.aspx
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:71
Member Variables
- protected const llvm::pdb::IPDBSession& Session
- protected std::unique_ptr<IPDBRawSymbol> OwnedRawSymbol
- protected llvm::pdb::IPDBRawSymbol* RawSymbol = nullptr
Method Overview
- protected PDBSymbol(const llvm::pdb::IPDBSession & PDBSession)
- protected PDBSymbol(llvm::pdb::PDBSymbol && Other)
- public static std::unique_ptr<PDBSymbol> create(const llvm::pdb::IPDBSession & PDBSession, std::unique_ptr<IPDBRawSymbol> RawSymbol)
- public static std::unique_ptr<PDBSymbol> create(const llvm::pdb::IPDBSession & PDBSession, llvm::pdb::IPDBRawSymbol & RawSymbol)
- public template <typename ConcreteT>static std::unique_ptr<ConcreteT> createAs(const llvm::pdb::IPDBSession & PDBSession, std::unique_ptr<IPDBRawSymbol> RawSymbol)
- public template <typename ConcreteT>static std::unique_ptr<ConcreteT> createAs(const llvm::pdb::IPDBSession & PDBSession, llvm::pdb::IPDBRawSymbol & RawSymbol)
- private static std::unique_ptr<PDBSymbol> createSymbol(const llvm::pdb::IPDBSession & PDBSession, llvm::pdb::PDB_SymType Tag)
- public void defaultDump(llvm::raw_ostream & OS, int Indent, llvm::pdb::PdbSymbolIdField ShowFlags, llvm::pdb::PdbSymbolIdField RecurseFlags) const
- public virtual void dump(llvm::pdb::PDBSymDumper & Dumper) const
- public void dumpChildStats() const
- public void dumpProperties() const
- public virtual void dumpRight(llvm::pdb::PDBSymDumper & Dumper) const
- public template <typename T>std::unique_ptr<ConcreteSymbolEnumerator<T>> findAllChildren() const
- public std::unique_ptr<IPDBEnumSymbols> findAllChildren(llvm::pdb::PDB_SymType Type) const
- public std::unique_ptr<IPDBEnumSymbols> findAllChildren() const
- public std::unique_ptr<IPDBEnumSymbols> findChildren(llvm::pdb::PDB_SymType Type, llvm::StringRef Name, llvm::pdb::PDB_NameSearchFlags Flags) const
- public std::unique_ptr<IPDBEnumSymbols> findChildrenByRVA(llvm::pdb::PDB_SymType Type, llvm::StringRef Name, llvm::pdb::PDB_NameSearchFlags Flags, uint32_t RVA) const
- public std::unique_ptr<IPDBEnumSymbols> findInlineFramesByRVA(uint32_t RVA) const
- public std::unique_ptr<IPDBEnumSymbols> findInlineFramesByVA(uint64_t VA) const
- public std::unique_ptr<IPDBEnumLineNumbers> findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const
- public std::unique_ptr<IPDBEnumLineNumbers> findInlineeLinesByVA(uint64_t VA, uint32_t Length) const
- public template <typename T>std::unique_ptr<T> findOneChild() const
- public std::unique_ptr<IPDBEnumSymbols> getChildStats(llvm::pdb::TagStats & Stats) const
- protected template <typename ConcreteType>std::unique_ptr<ConcreteType> getConcreteSymbolByIdHelper(uint32_t Id) const
- public std::string getName() const
- public const llvm::pdb::IPDBRawSymbol & getRawSymbol() const
- public llvm::pdb::IPDBRawSymbol & getRawSymbol()
- public const llvm::pdb::IPDBSession & getSession() const
- public uint32_t getSymIndexId() const
- public llvm::pdb::PDB_SymType getSymTag() const
- protected std::unique_ptr<PDBSymbol> getSymbolByIdHelper(uint32_t Id) const
- public virtual ~PDBSymbol()
Methods
¶PDBSymbol(
const llvm::pdb::IPDBSession& PDBSession)
PDBSymbol(
const llvm::pdb::IPDBSession& PDBSession)
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:76
Parameters
- const llvm::pdb::IPDBSession& PDBSession
¶PDBSymbol(llvm::pdb::PDBSymbol&& Other)
PDBSymbol(llvm::pdb::PDBSymbol&& Other)
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:77
Parameters
- llvm::pdb::PDBSymbol&& Other
¶static std::unique_ptr<PDBSymbol> create(
const llvm::pdb::IPDBSession& PDBSession,
std::unique_ptr<IPDBRawSymbol> RawSymbol)
static std::unique_ptr<PDBSymbol> create(
const llvm::pdb::IPDBSession& PDBSession,
std::unique_ptr<IPDBRawSymbol> RawSymbol)
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:81
Parameters
- const llvm::pdb::IPDBSession& PDBSession
- std::unique_ptr<IPDBRawSymbol> RawSymbol
¶static std::unique_ptr<PDBSymbol> create(
const llvm::pdb::IPDBSession& PDBSession,
llvm::pdb::IPDBRawSymbol& RawSymbol)
static std::unique_ptr<PDBSymbol> create(
const llvm::pdb::IPDBSession& PDBSession,
llvm::pdb::IPDBRawSymbol& RawSymbol)
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:83
Parameters
- const llvm::pdb::IPDBSession& PDBSession
- llvm::pdb::IPDBRawSymbol& RawSymbol
¶template <typename ConcreteT>
static std::unique_ptr<ConcreteT> createAs(
const llvm::pdb::IPDBSession& PDBSession,
std::unique_ptr<IPDBRawSymbol> RawSymbol)
template <typename ConcreteT>
static std::unique_ptr<ConcreteT> createAs(
const llvm::pdb::IPDBSession& PDBSession,
std::unique_ptr<IPDBRawSymbol> RawSymbol)
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:88
Templates
- ConcreteT
Parameters
- const llvm::pdb::IPDBSession& PDBSession
- std::unique_ptr<IPDBRawSymbol> RawSymbol
¶template <typename ConcreteT>
static std::unique_ptr<ConcreteT> createAs(
const llvm::pdb::IPDBSession& PDBSession,
llvm::pdb::IPDBRawSymbol& RawSymbol)
template <typename ConcreteT>
static std::unique_ptr<ConcreteT> createAs(
const llvm::pdb::IPDBSession& PDBSession,
llvm::pdb::IPDBRawSymbol& RawSymbol)
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:94
Templates
- ConcreteT
Parameters
- const llvm::pdb::IPDBSession& PDBSession
- llvm::pdb::IPDBRawSymbol& RawSymbol
¶static std::unique_ptr<PDBSymbol> createSymbol(
const llvm::pdb::IPDBSession& PDBSession,
llvm::pdb::PDB_SymType Tag)
static std::unique_ptr<PDBSymbol> createSymbol(
const llvm::pdb::IPDBSession& PDBSession,
llvm::pdb::PDB_SymType Tag)
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:72
Parameters
- const llvm::pdb::IPDBSession& PDBSession
- llvm::pdb::PDB_SymType Tag
¶void defaultDump(
llvm::raw_ostream& OS,
int Indent,
llvm::pdb::PdbSymbolIdField ShowFlags,
llvm::pdb::PdbSymbolIdField RecurseFlags)
const
void defaultDump(
llvm::raw_ostream& OS,
int Indent,
llvm::pdb::PdbSymbolIdField ShowFlags,
llvm::pdb::PdbSymbolIdField RecurseFlags)
const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:112
Parameters
- llvm::raw_ostream& OS
- int Indent
- llvm::pdb::PdbSymbolIdField ShowFlags
- llvm::pdb::PdbSymbolIdField RecurseFlags
¶virtual void dump(
llvm::pdb::PDBSymDumper& Dumper) const
virtual void dump(
llvm::pdb::PDBSymDumper& Dumper) const
Description
Dumps the contents of a symbol a raw_ostream. By default this will just call dump() on the underlying RawSymbol, which allows us to discover unknown properties, but individual implementations of PDBSymbol may override the behavior to only dump known fields.
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:106
Parameters
- llvm::pdb::PDBSymDumper& Dumper
¶void dumpChildStats() const
void dumpChildStats() const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:115
¶void dumpProperties() const
void dumpProperties() const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:114
¶virtual void dumpRight(
llvm::pdb::PDBSymDumper& Dumper) const
virtual void dumpRight(
llvm::pdb::PDBSymDumper& Dumper) const
Description
For certain PDBSymbolTypes, dumps additional information for the type that normally goes on the right side of the symbol.
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:110
Parameters
- llvm::pdb::PDBSymDumper& Dumper
¶template <typename T>
std::unique_ptr<ConcreteSymbolEnumerator<T>>
findAllChildren() const
template <typename T>
std::unique_ptr<ConcreteSymbolEnumerator<T>>
findAllChildren() const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:128
Templates
- T
¶std::unique_ptr<IPDBEnumSymbols> findAllChildren(
llvm::pdb::PDB_SymType Type) const
std::unique_ptr<IPDBEnumSymbols> findAllChildren(
llvm::pdb::PDB_SymType Type) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:134
Parameters
- llvm::pdb::PDB_SymType Type
¶std::unique_ptr<IPDBEnumSymbols> findAllChildren()
const
std::unique_ptr<IPDBEnumSymbols> findAllChildren()
const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:135
¶std::unique_ptr<IPDBEnumSymbols> findChildren(
llvm::pdb::PDB_SymType Type,
llvm::StringRef Name,
llvm::pdb::PDB_NameSearchFlags Flags) const
std::unique_ptr<IPDBEnumSymbols> findChildren(
llvm::pdb::PDB_SymType Type,
llvm::StringRef Name,
llvm::pdb::PDB_NameSearchFlags Flags) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:138
Parameters
- llvm::pdb::PDB_SymType Type
- llvm::StringRef Name
- llvm::pdb::PDB_NameSearchFlags Flags
¶std::unique_ptr<IPDBEnumSymbols>
findChildrenByRVA(
llvm::pdb::PDB_SymType Type,
llvm::StringRef Name,
llvm::pdb::PDB_NameSearchFlags Flags,
uint32_t RVA) const
std::unique_ptr<IPDBEnumSymbols>
findChildrenByRVA(
llvm::pdb::PDB_SymType Type,
llvm::StringRef Name,
llvm::pdb::PDB_NameSearchFlags Flags,
uint32_t RVA) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:140
Parameters
- llvm::pdb::PDB_SymType Type
- llvm::StringRef Name
- llvm::pdb::PDB_NameSearchFlags Flags
- uint32_t RVA
¶std::unique_ptr<IPDBEnumSymbols>
findInlineFramesByRVA(uint32_t RVA) const
std::unique_ptr<IPDBEnumSymbols>
findInlineFramesByRVA(uint32_t RVA) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:145
Parameters
- uint32_t RVA
¶std::unique_ptr<IPDBEnumSymbols>
findInlineFramesByVA(uint64_t VA) const
std::unique_ptr<IPDBEnumSymbols>
findInlineFramesByVA(uint64_t VA) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:144
Parameters
- uint64_t VA
¶std::unique_ptr<IPDBEnumLineNumbers>
findInlineeLinesByRVA(uint32_t RVA,
uint32_t Length) const
std::unique_ptr<IPDBEnumLineNumbers>
findInlineeLinesByRVA(uint32_t RVA,
uint32_t Length) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:149
Parameters
- uint32_t RVA
- uint32_t Length
¶std::unique_ptr<IPDBEnumLineNumbers>
findInlineeLinesByVA(uint64_t VA,
uint32_t Length) const
std::unique_ptr<IPDBEnumLineNumbers>
findInlineeLinesByVA(uint64_t VA,
uint32_t Length) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:147
Parameters
- uint64_t VA
- uint32_t Length
¶template <typename T>
std::unique_ptr<T> findOneChild() const
template <typename T>
std::unique_ptr<T> findOneChild() const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:120
Templates
- T
¶std::unique_ptr<IPDBEnumSymbols> getChildStats(
llvm::pdb::TagStats& Stats) const
std::unique_ptr<IPDBEnumSymbols> getChildStats(
llvm::pdb::TagStats& Stats) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:158
Parameters
- llvm::pdb::TagStats& Stats
¶template <typename ConcreteType>
std::unique_ptr<ConcreteType>
getConcreteSymbolByIdHelper(uint32_t Id) const
template <typename ConcreteType>
std::unique_ptr<ConcreteType>
getConcreteSymbolByIdHelper(uint32_t Id) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:164
Templates
- ConcreteType
Parameters
- uint32_t Id
¶std::string getName() const
std::string getName() const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:151
¶const llvm::pdb::IPDBRawSymbol& getRawSymbol()
const
const llvm::pdb::IPDBRawSymbol& getRawSymbol()
const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:153
¶llvm::pdb::IPDBRawSymbol& getRawSymbol()
llvm::pdb::IPDBRawSymbol& getRawSymbol()
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:154
¶const llvm::pdb::IPDBSession& getSession() const
const llvm::pdb::IPDBSession& getSession() const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:156
¶uint32_t getSymIndexId() const
uint32_t getSymIndexId() const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:118
¶llvm::pdb::PDB_SymType getSymTag() const
llvm::pdb::PDB_SymType getSymTag() const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:117
¶std::unique_ptr<PDBSymbol> getSymbolByIdHelper(
uint32_t Id) const
std::unique_ptr<PDBSymbol> getSymbolByIdHelper(
uint32_t Id) const
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:161
Parameters
- uint32_t Id
¶virtual ~PDBSymbol()
virtual ~PDBSymbol()
Declared at: llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h:100