LLVM: llvm::pdb::PDBSymbol Class Reference (original) (raw)

PDBSymbol defines the base of the inheritance hierarchy for concrete symbol types (e.g. More...

#include "[llvm/DebugInfo/PDB/PDBSymbol.h](PDBSymbol%5F8h%5Fsource.html)"

Public Member Functions
virtual ~PDBSymbol ()
virtual void dump (PDBSymDumper &Dumper) const =0
Dumps the contents of a symbol a raw_ostream.
virtual void dumpRight (PDBSymDumper &Dumper) const
For certain PDBSymbolTypes, dumps additional information for the type that normally goes on the right side of the symbol.
void defaultDump (raw_ostream &OS, int Indent, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags) const
void dumpProperties () const
void dumpChildStats () const
PDB_SymType getSymTag () const
uint32_t getSymIndexId () const
template<typename T>
std::unique_ptr< T > findOneChild () const
template<typename T>
std::unique_ptr< ConcreteSymbolEnumerator< T > > findAllChildren () const
std::unique_ptr< IPDBEnumSymbols > findAllChildren (PDB_SymType Type) const
std::unique_ptr< IPDBEnumSymbols > findAllChildren () const
std::unique_ptr< IPDBEnumSymbols > findChildren (PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags) const
std::unique_ptr< IPDBEnumSymbols > findChildrenByRVA (PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint32_t RVA) const
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByVA (uint64_t VA) const
std::unique_ptr< IPDBEnumSymbols > findInlineFramesByRVA (uint32_t RVA) const
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByVA (uint64_t VA, uint32_t Length) const
std::unique_ptr< IPDBEnumLineNumbers > findInlineeLinesByRVA (uint32_t RVA, uint32_t Length) const
std::string getName () const
const IPDBRawSymbol & getRawSymbol () const
IPDBRawSymbol & getRawSymbol ()
const IPDBSession & getSession () const
std::unique_ptr< IPDBEnumSymbols > getChildStats (TagStats &Stats) const
Static Public Member Functions
static std::unique_ptr< PDBSymbol > create (const IPDBSession &PDBSession, std::unique_ptr< IPDBRawSymbol > RawSymbol)
static std::unique_ptr< PDBSymbol > create (const IPDBSession &PDBSession, IPDBRawSymbol &RawSymbol)
template
static std::unique_ptr< ConcreteT > createAs (const IPDBSession &PDBSession, std::unique_ptr< IPDBRawSymbol > RawSymbol)
template
static std::unique_ptr< ConcreteT > createAs (const IPDBSession &PDBSession, IPDBRawSymbol &RawSymbol)
Protected Member Functions
PDBSymbol (const IPDBSession &PDBSession)
PDBSymbol (PDBSymbol &&Other)
std::unique_ptr< PDBSymbol > getSymbolByIdHelper (uint32_t Id) const
template
std::unique_ptr< ConcreteType > getConcreteSymbolByIdHelper (uint32_t Id) const

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

Definition at line 72 of file PDBSymbol.h.

PDBSymbol() [2/2]

PDBSymbol::PDBSymbol ( PDBSymbol && Other) protected

~PDBSymbol()

PDBSymbol::~PDBSymbol ( ) virtualdefault

create() [1/2]

create() [2/2]

createAs() [1/2]

template

createAs() [2/2]

template

defaultDump()

dump()

virtual void llvm::pdb::PDBSymbol::dump ( PDBSymDumper & Dumper) const pure virtual

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.

Implemented in llvm::pdb::PDBSymbolAnnotation, llvm::pdb::PDBSymbolBlock, llvm::pdb::PDBSymbolCompiland, llvm::pdb::PDBSymbolCompilandDetails, llvm::pdb::PDBSymbolCompilandEnv, llvm::pdb::PDBSymbolCustom, llvm::pdb::PDBSymbolData, llvm::pdb::PDBSymbolExe, llvm::pdb::PDBSymbolFunc, llvm::pdb::PDBSymbolFuncDebugEnd, llvm::pdb::PDBSymbolFuncDebugStart, llvm::pdb::PDBSymbolLabel, llvm::pdb::PDBSymbolPublicSymbol, llvm::pdb::PDBSymbolThunk, llvm::pdb::PDBSymbolTypeArray, llvm::pdb::PDBSymbolTypeBaseClass, llvm::pdb::PDBSymbolTypeBuiltin, llvm::pdb::PDBSymbolTypeCustom, llvm::pdb::PDBSymbolTypeDimension, llvm::pdb::PDBSymbolTypeEnum, llvm::pdb::PDBSymbolTypeFriend, llvm::pdb::PDBSymbolTypeFunctionArg, llvm::pdb::PDBSymbolTypeFunctionSig, llvm::pdb::PDBSymbolTypeManaged, llvm::pdb::PDBSymbolTypePointer, llvm::pdb::PDBSymbolTypeTypedef, llvm::pdb::PDBSymbolTypeUDT, llvm::pdb::PDBSymbolTypeVTable, llvm::pdb::PDBSymbolTypeVTableShape, and llvm::pdb::PDBSymbolUsingNamespace.

dumpChildStats()

void PDBSymbol::dumpChildStats ( ) const

dumpProperties()

void PDBSymbol::dumpProperties ( ) const

dumpRight()

virtual void llvm::pdb::PDBSymbol::dumpRight ( PDBSymDumper & Dumper) const inlinevirtual

findAllChildren() [1/3]

findAllChildren() [2/3]

findAllChildren() [3/3]

findChildren()

findChildrenByRVA()

findInlineeLinesByRVA()

findInlineeLinesByVA()

findInlineFramesByRVA()

findInlineFramesByVA()

findOneChild()

template<typename T>

std::unique_ptr< T > llvm::pdb::PDBSymbol::findOneChild ( ) const inline

getChildStats()

getConcreteSymbolByIdHelper()

template

std::unique_ptr< ConcreteType > llvm::pdb::PDBSymbol::getConcreteSymbolByIdHelper ( uint32_t Id) const inlineprotected

getName()

std::string PDBSymbol::getName ( ) const

getRawSymbol() [1/2]

getRawSymbol() [2/2]

getSession()

getSymbolByIdHelper()

std::unique_ptr< PDBSymbol > PDBSymbol::getSymbolByIdHelper ( uint32_t Id) const protected

getSymIndexId()

uint32_t PDBSymbol::getSymIndexId ( ) const

getSymTag()

OwnedRawSymbol

std::unique_ptr<IPDBRawSymbol> llvm::pdb::PDBSymbol::OwnedRawSymbol protected

RawSymbol

Definition at line 171 of file PDBSymbol.h.

Referenced by create(), create(), createAs(), createAs(), defaultDump(), findAllChildren(), findAllChildren(), findChildren(), findChildrenByRVA(), findInlineeLinesByRVA(), findInlineeLinesByVA(), findInlineFramesByRVA(), findInlineFramesByVA(), llvm::pdb::PDBSymbolCompilandDetails::getBackEndVersion(), llvm::pdb::PDBSymbolData::getCompilandId(), llvm::pdb::PDBSymbolCustom::getDataBytes(), llvm::pdb::PDBSymbolCompilandDetails::getFrontEndVersion(), llvm::pdb::PDBSymbolData::getLineNumbers(), getName(), getRawSymbol(), getRawSymbol(), llvm::pdb::PDBSymbolCompiland::getSourceFileFullPath(), getSymIndexId(), getSymTag(), llvm::pdb::PDBSymbolCompilandEnv::getValue(), and PDBSymbol().

Session


The documentation for this class was generated from the following files: