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)"
| 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:
- include/llvm/DebugInfo/PDB/PDBSymbol.h
- lib/DebugInfo/PDB/PDBSymbol.cpp