|
LLVM
4.0.0
|
PDBSymbol defines the base of the inheritance hierarchy for concrete symbol types (e.g. More...
#include <PDBSymbol.h>
Static Public Member Functions | |
| static std::unique_ptr< PDBSymbol > | create (const IPDBSession &PDBSession, std::unique_ptr< IPDBRawSymbol > Symbol) |
Protected Member Functions | |
| PDBSymbol (const IPDBSession &PDBSession, std::unique_ptr< IPDBRawSymbol > Symbol) | |
Protected Attributes | |
| const IPDBSession & | Session |
| const std::unique_ptr < IPDBRawSymbol > | RawSymbol |
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.
|
protected |
Definition at line 52 of file PDBSymbol.cpp.
|
virtualdefault |
|
static |
Definition at line 63 of file PDBSymbol.cpp.
References llvm::pdb::Annotation, llvm::pdb::BaseClass, llvm::pdb::Block, llvm::pdb::BuiltinType, llvm::pdb::Compiland, llvm::pdb::CompilandDetails, llvm::pdb::CompilandEnv, llvm::pdb::Custom, llvm::pdb::CustomType, llvm::pdb::Data, llvm::pdb::Dimension, llvm::pdb::Enum, llvm::pdb::Exe, FACTORY_SYMTAG_CASE, llvm::pdb::Friend, llvm::pdb::FuncDebugEnd, llvm::pdb::FuncDebugStart, llvm::pdb::FunctionArg, llvm::pdb::FunctionSig, llvm::pdb::Label, llvm::pdb::ManagedType, llvm::pdb::PublicSymbol, llvm::pdb::Thunk, llvm::pdb::Typedef, llvm::pdb::UDT, llvm::pdb::UsingNamespace, llvm::pdb::VTable, and llvm::pdb::VTableShape.
Referenced by llvm::pdb::DIASession::findSymbolByAddress(), llvm::pdb::DIAEnumSymbols::getChildAtIndex(), llvm::pdb::DIASession::getGlobalScope(), llvm::pdb::DIAEnumSymbols::getNext(), and llvm::pdb::DIASession::getSymbolById().
| void PDBSymbol::defaultDump | ( | raw_ostream & | OS, |
| int | Indent | ||
| ) | const |
Definition at line 108 of file PDBSymbol.cpp.
References RawSymbol.
|
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::PDBSymbolCustom, llvm::pdb::PDBSymbolTypeFunctionSig, llvm::pdb::PDBSymbolData, llvm::pdb::PDBSymbolTypeArray, llvm::pdb::PDBSymbolTypePointer, llvm::pdb::PDBSymbolCompiland, llvm::pdb::PDBSymbolExe, llvm::pdb::PDBSymbolFuncDebugEnd, llvm::pdb::PDBSymbolBlock, llvm::pdb::PDBSymbolCompilandDetails, llvm::pdb::PDBSymbolFuncDebugStart, llvm::pdb::PDBSymbolLabel, llvm::pdb::PDBSymbolPublicSymbol, llvm::pdb::PDBSymbolThunk, llvm::pdb::PDBSymbolTypeBaseClass, llvm::pdb::PDBSymbolTypeBuiltin, llvm::pdb::PDBSymbolTypeCustom, llvm::pdb::PDBSymbolTypeDimension, llvm::pdb::PDBSymbolTypeEnum, llvm::pdb::PDBSymbolTypeFriend, llvm::pdb::PDBSymbolTypeFunctionArg, llvm::pdb::PDBSymbolTypeManaged, llvm::pdb::PDBSymbolTypeTypedef, llvm::pdb::PDBSymbolTypeUDT, llvm::pdb::PDBSymbolTypeVTable, llvm::pdb::PDBSymbolTypeVTableShape, llvm::pdb::PDBSymbolUsingNamespace, llvm::pdb::PDBSymbolAnnotation, llvm::pdb::PDBSymbolCompilandEnv, llvm::pdb::PDBSymbolFunc, and llvm::pdb::PDBSymbolUnknown.
|
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.
|
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().
|
inline |
Definition at line 86 of file PDBSymbol.h.
References RawSymbol.
Referenced by llvm::pdb::DIASession::findLineNumbers(), llvm::pdb::DIASession::findSourceFiles(), and llvm::pdb::DIASession::getSourceFilesForCompiland().
|
inline |
Definition at line 87 of file PDBSymbol.h.
References RawSymbol.
|
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().
|
protected |
Definition at line 95 of file PDBSymbol.h.
Referenced by defaultDump(), findAllChildren(), findChildren(), findChildrenByRVA(), findInlineFramesByRVA(), llvm::pdb::PDBSymbolCompilandDetails::getBackEndVersion(), llvm::pdb::PDBSymbolCustom::getDataBytes(), llvm::pdb::PDBSymbolCompilandDetails::getFrontEndVersion(), getRawSymbol(), llvm::pdb::PDBSymbolCompiland::getSourceFileName(), getSymIndexId(), getSymTag(), and llvm::pdb::PDBSymbolCompilandEnv::getValue().
|
protected |
Definition at line 94 of file PDBSymbol.h.
Referenced by llvm::pdb::PDBSymbolTypeFunctionSig::getArguments(), llvm::pdb::PDBSymbolFunc::getArguments(), llvm::pdb::PDBSymbolFunc::getClassParent(), llvm::pdb::PDBSymbolTypeFunctionSig::getClassParent(), llvm::pdb::PDBSymbolTypeEnum::getClassParent(), llvm::pdb::PDBSymbolTypeArray::getElementType(), llvm::pdb::PDBSymbolTypePointer::getPointeeType(), llvm::pdb::PDBSymbolTypeFunctionSig::getReturnType(), getSession(), llvm::pdb::PDBSymbolFunc::getSignature(), llvm::pdb::PDBSymbolData::getType(), and llvm::pdb::PDBSymbolTypeEnum::getUnderlyingType().
1.8.6