LLVM  4.0.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::pdb::PDBSymbol Class Referenceabstract

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

#include <PDBSymbol.h>

Inheritance diagram for llvm::pdb::PDBSymbol:
[legend]
Collaboration diagram for llvm::pdb::PDBSymbol:
[legend]

Public Member Functions

virtual ~PDBSymbol ()
 
virtual void dump (PDBSymDumper &Dumper) const =0
 Dumps the contents of a symbol a raw_ostream. More...
 
void defaultDump (raw_ostream &OS, int Indent) const
 
PDB_SymType getSymTag () const
 
uint32_t getSymIndexId () const
 
template<typename T >
std::unique_ptr< TfindOneChild () const
 
template<typename T >
std::unique_ptr
< ConcreteSymbolEnumerator< T > > 
findAllChildren () const
 
std::unique_ptr< IPDBEnumSymbolsfindAllChildren (PDB_SymType Type) const
 
std::unique_ptr< IPDBEnumSymbolsfindAllChildren () const
 
std::unique_ptr< IPDBEnumSymbolsfindChildren (PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags) const
 
std::unique_ptr< IPDBEnumSymbolsfindChildrenByRVA (PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, uint32_t RVA) const
 
std::unique_ptr< IPDBEnumSymbolsfindInlineFramesByRVA (uint32_t RVA) const
 
const IPDBRawSymbolgetRawSymbol () const
 
IPDBRawSymbolgetRawSymbol ()
 
const IPDBSessiongetSession () const
 
std::unique_ptr< IPDBEnumSymbolsgetChildStats (TagStats &Stats) const
 

Static Public Member Functions

static std::unique_ptr< PDBSymbolcreate (const IPDBSession &PDBSession, std::unique_ptr< IPDBRawSymbol > Symbol)
 

Protected Member Functions

 PDBSymbol (const IPDBSession &PDBSession, std::unique_ptr< IPDBRawSymbol > Symbol)
 

Protected Attributes

const IPDBSessionSession
 
const std::unique_ptr
< IPDBRawSymbol
RawSymbol
 

Detailed 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

Definition at line 43 of file PDBSymbol.h.

Constructor & Destructor Documentation

PDBSymbol::PDBSymbol ( const IPDBSession PDBSession,
std::unique_ptr< IPDBRawSymbol Symbol 
)
protected

Definition at line 52 of file PDBSymbol.cpp.

PDBSymbol::~PDBSymbol ( )
virtualdefault

Member Function Documentation

std::unique_ptr< PDBSymbol > PDBSymbol::create ( const IPDBSession PDBSession,
std::unique_ptr< IPDBRawSymbol Symbol 
)
static
void PDBSymbol::defaultDump ( raw_ostream OS,
int  Indent 
) const

Definition at line 108 of file PDBSymbol.cpp.

References RawSymbol.

virtual void llvm::pdb::PDBSymbol::dump ( PDBSymDumper Dumper) const
pure virtual
template<typename T >
std::unique_ptr<ConcreteSymbolEnumerator<T> > llvm::pdb::PDBSymbol::findAllChildren ( ) const
inline

Definition at line 70 of file PDBSymbol.h.

References RawSymbol.

Referenced by findAllChildren(), and getChildStats().

std::unique_ptr< IPDBEnumSymbols > PDBSymbol::findAllChildren ( PDB_SymType  Type) const

Definition at line 120 of file PDBSymbol.cpp.

References RawSymbol.

std::unique_ptr< IPDBEnumSymbols > PDBSymbol::findAllChildren ( ) const

Definition at line 115 of file PDBSymbol.cpp.

References findAllChildren(), and llvm::pdb::None.

std::unique_ptr< IPDBEnumSymbols > PDBSymbol::findChildren ( PDB_SymType  Type,
StringRef  Name,
PDB_NameSearchFlags  Flags 
) const

Definition at line 125 of file PDBSymbol.cpp.

References RawSymbol.

std::unique_ptr< IPDBEnumSymbols > PDBSymbol::findChildrenByRVA ( PDB_SymType  Type,
StringRef  Name,
PDB_NameSearchFlags  Flags,
uint32_t  RVA 
) const

Definition at line 131 of file PDBSymbol.cpp.

References RawSymbol.

std::unique_ptr< IPDBEnumSymbols > PDBSymbol::findInlineFramesByRVA ( uint32_t  RVA) const

Definition at line 137 of file PDBSymbol.cpp.

References RawSymbol.

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

Definition at line 64 of file PDBSymbol.h.

References llvm::dwarf::syntax::Enumerator.

std::unique_ptr< IPDBEnumSymbols > PDBSymbol::getChildStats ( TagStats Stats) const

Definition at line 142 of file PDBSymbol.cpp.

References findAllChildren().

const IPDBRawSymbol& llvm::pdb::PDBSymbol::getRawSymbol ( ) const
inline
IPDBRawSymbol& llvm::pdb::PDBSymbol::getRawSymbol ( )
inline

Definition at line 87 of file PDBSymbol.h.

References RawSymbol.

const IPDBSession& llvm::pdb::PDBSymbol::getSession ( ) const
inline

Definition at line 89 of file PDBSymbol.h.

References Session.

uint32_t PDBSymbol::getSymIndexId ( ) const

Definition at line 113 of file PDBSymbol.cpp.

References RawSymbol.

PDB_SymType PDBSymbol::getSymTag ( ) const

Definition at line 112 of file PDBSymbol.cpp.

References RawSymbol.

Referenced by llvm::pdb::PDBSymbolUnknown::classof().

Member Data Documentation

const std::unique_ptr<IPDBRawSymbol> llvm::pdb::PDBSymbol::RawSymbol
protected
const IPDBSession& llvm::pdb::PDBSymbol::Session
protected

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