LLVM  3.7.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::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::PDBSymbol:
[legend]
Collaboration diagram for llvm::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
 
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 42 of file PDBSymbol.h.

Constructor & Destructor Documentation

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

Definition at line 54 of file PDBSymbol.cpp.

PDBSymbol::~PDBSymbol ( )
virtual

Definition at line 58 of file PDBSymbol.cpp.

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 110 of file PDBSymbol.cpp.

References RawSymbol.

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

Definition at line 67 of file PDBSymbol.h.

References RawSymbol.

Referenced by findAllChildren(), and getChildStats().

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

Definition at line 121 of file PDBSymbol.cpp.

References RawSymbol.

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

Definition at line 116 of file PDBSymbol.cpp.

References findAllChildren(), and llvm::None.

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

Definition at line 126 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 132 of file PDBSymbol.cpp.

References RawSymbol.

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

Definition at line 138 of file PDBSymbol.cpp.

References RawSymbol.

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

Definition at line 61 of file PDBSymbol.h.

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

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

Definition at line 143 of file PDBSymbol.cpp.

References findAllChildren().

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

Definition at line 83 of file PDBSymbol.h.

References RawSymbol.

Referenced by llvm::DIASession::getSourceFilesForCompiland().

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

Definition at line 84 of file PDBSymbol.h.

References RawSymbol.

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

Definition at line 86 of file PDBSymbol.h.

References Session.

PDB_SymType PDBSymbol::getSymTag ( ) const

Definition at line 114 of file PDBSymbol.cpp.

References RawSymbol.

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

Member Data Documentation

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

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