|
LLVM
3.7.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 42 of file PDBSymbol.h.
|
protected |
Definition at line 54 of file PDBSymbol.cpp.
|
virtual |
Definition at line 58 of file PDBSymbol.cpp.
|
static |
Definition at line 65 of file PDBSymbol.cpp.
References llvm::Annotation, llvm::BaseClass, llvm::Block, llvm::BuiltinType, llvm::Compiland, llvm::CompilandDetails, llvm::CompilandEnv, llvm::Custom, llvm::CustomType, llvm::Data, llvm::Dimension, llvm::Enum, llvm::Exe, FACTORY_SYMTAG_CASE, llvm::Friend, llvm::FuncDebugEnd, llvm::FuncDebugStart, llvm::FunctionArg, llvm::FunctionSig, llvm::Label, llvm::ManagedType, llvm::PublicSymbol, llvm::Thunk, llvm::Typedef, llvm::UDT, llvm::UsingNamespace, llvm::VTable, and llvm::VTableShape.
Referenced by llvm::DIASession::findSymbolByAddress(), llvm::DIAEnumSymbols::getChildAtIndex(), llvm::DIASession::getGlobalScope(), llvm::DIAEnumSymbols::getNext(), and llvm::DIASession::getSymbolById().
| void PDBSymbol::defaultDump | ( | raw_ostream & | OS, |
| int | Indent | ||
| ) | const |
Definition at line 110 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::PDBSymbolCustom, llvm::PDBSymbolTypeFunctionSig, llvm::PDBSymbolData, llvm::PDBSymbolTypeArray, llvm::PDBSymbolTypePointer, llvm::PDBSymbolExe, llvm::PDBSymbolThunk, llvm::PDBSymbolAnnotation, llvm::PDBSymbolBlock, llvm::PDBSymbolCompiland, llvm::PDBSymbolCompilandDetails, llvm::PDBSymbolCompilandEnv, llvm::PDBSymbolFuncDebugEnd, llvm::PDBSymbolFuncDebugStart, llvm::PDBSymbolLabel, llvm::PDBSymbolPublicSymbol, llvm::PDBSymbolTypeBaseClass, llvm::PDBSymbolTypeBuiltin, llvm::PDBSymbolTypeCustom, llvm::PDBSymbolTypeDimension, llvm::PDBSymbolTypeEnum, llvm::PDBSymbolTypeFriend, llvm::PDBSymbolTypeFunctionArg, llvm::PDBSymbolTypeManaged, llvm::PDBSymbolTypeTypedef, llvm::PDBSymbolTypeUDT, llvm::PDBSymbolTypeVTable, llvm::PDBSymbolTypeVTableShape, llvm::PDBSymbolUsingNamespace, llvm::PDBSymbolFunc, and llvm::PDBSymbolUnknown.
|
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.
|
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().
|
inline |
Definition at line 83 of file PDBSymbol.h.
References RawSymbol.
Referenced by llvm::DIASession::getSourceFilesForCompiland().
|
inline |
Definition at line 84 of file PDBSymbol.h.
References RawSymbol.
|
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().
|
protected |
Definition at line 92 of file PDBSymbol.h.
Referenced by defaultDump(), findAllChildren(), findChildren(), findChildrenByRVA(), findInlineFramesByRVA(), llvm::PDBSymbolCompilandDetails::getBackEndVersion(), llvm::PDBSymbolCustom::getDataBytes(), llvm::PDBSymbolCompilandDetails::getFrontEndVersion(), getRawSymbol(), and getSymTag().
|
protected |
Definition at line 91 of file PDBSymbol.h.
Referenced by llvm::PDBSymbolTypeFunctionSig::getArguments(), llvm::PDBSymbolFunc::getArguments(), llvm::PDBSymbolFunc::getClassParent(), llvm::PDBSymbolTypeFunctionSig::getClassParent(), llvm::PDBSymbolTypeEnum::getClassParent(), llvm::PDBSymbolTypeArray::getElementType(), llvm::PDBSymbolTypePointer::getPointeeType(), llvm::PDBSymbolTypeFunctionSig::getReturnType(), getSession(), llvm::PDBSymbolFunc::getSignature(), llvm::PDBSymbolData::getType(), and llvm::PDBSymbolTypeEnum::getUnderlyingType().
1.8.6