10 #ifndef LLVM_DEBUGINFO_PDB_IPDBSESSION_H
11 #define LLVM_DEBUGINFO_PDB_IPDBSESSION_H
19 class PDBSymbolCompiland;
31 virtual std::unique_ptr<PDBSymbol>
getSymbolById(uint32_t SymbolId)
const = 0;
43 return std::unique_ptr<T>(ConcreteSymbol);
46 virtual std::unique_ptr<PDBSymbol>
48 virtual std::unique_ptr<IPDBEnumLineNumbers>
52 virtual std::unique_ptr<IPDBEnumSourceFiles>
54 virtual std::unique_ptr<IPDBSourceFile>
57 virtual std::unique_ptr<IPDBEnumDataStreams>
getDebugStreams()
const = 0;
virtual std::unique_ptr< IPDBEnumSourceFiles > getSourceFilesForCompiland(const PDBSymbolCompiland &Compiland) const =0
virtual std::unique_ptr< IPDBEnumDataStreams > getDebugStreams() const =0
virtual std::unique_ptr< PDBSymbol > getSymbolById(uint32_t SymbolId) const =0
virtual std::unique_ptr< PDBSymbolExe > getGlobalScope() const =0
The instances of the Type class are immutable: once they are created, they are never changed...
virtual std::unique_ptr< IPDBEnumLineNumbers > findLineNumbersByAddress(uint64_t Address, uint32_t Length) const =0
virtual uint64_t getLoadAddress() const =0
virtual void setLoadAddress(uint64_t Address)=0
virtual std::unique_ptr< IPDBSourceFile > getSourceFileById(uint32_t FileId) const =0
IPDBSession defines an interface used to provide a context for querying debug information from a debu...
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx.
LLVM_ATTRIBUTE_UNUSED_RESULT std::enable_if< !is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)
virtual std::unique_ptr< PDBSymbol > findSymbolByAddress(uint64_t Address, PDB_SymType Type) const =0
virtual std::unique_ptr< IPDBEnumSourceFiles > getAllSourceFiles() const =0
std::unique_ptr< T > getConcreteSymbolById(uint32_t SymbolId) const