class NativeSession

Declaration

class NativeSession : public IPDBSession { /* full declaration omitted */ };

Description

IPDBSession defines an interface used to provide a context for querying debug information from a debug data source (for example, a PDB).

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:32

Inherits from: IPDBSession

Member Variables

private std::unique_ptr<PDBFile> Pdb
private std::unique_ptr<BumpPtrAllocator> Allocator
private llvm::pdb::SymbolCache Cache
private llvm::pdb::SymIndexId ExeSymbol = 0
private uint64_t LoadAddress = 0
private IMap::Allocator IMapAllocator
private llvm::pdb::NativeSession::IMap AddrToModuleIndex

Method Overview

  • public NativeSession(std::unique_ptr<PDBFile> PdbFile, std::unique_ptr<BumpPtrAllocator> Allocator)
  • public bool addressForRVA(uint32_t RVA, uint32_t & Section, uint32_t & Offset) const
  • public bool addressForVA(uint64_t VA, uint32_t & Section, uint32_t & Offset) const
  • public static llvm::Error createFromExe(llvm::StringRef Path, std::unique_ptr<IPDBSession> & Session)
  • public static llvm::Error createFromPdb(std::unique_ptr<MemoryBuffer> MB, std::unique_ptr<IPDBSession> & Session)
  • public static llvm::Error createFromPdbPath(llvm::StringRef PdbPath, std::unique_ptr<IPDBSession> & Session)
  • public std::unique_ptr<IPDBEnumChildren<PDBSymbolCompiland>> findCompilandsForSourceFile(llvm::StringRef Pattern, llvm::pdb::PDB_NameSearchFlags Flags) const
  • public std::unique_ptr<IPDBEnumLineNumbers> findLineNumbers(const llvm::pdb::PDBSymbolCompiland & Compiland, const llvm::pdb::IPDBSourceFile & File) const
  • public std::unique_ptr<IPDBEnumLineNumbers> findLineNumbersByAddress(uint64_t Address, uint32_t Length) const
  • public std::unique_ptr<IPDBEnumLineNumbers> findLineNumbersByRVA(uint32_t RVA, uint32_t Length) const
  • public std::unique_ptr<IPDBEnumLineNumbers> findLineNumbersBySectOffset(uint32_t Section, uint32_t Offset, uint32_t Length) const
  • public std::unique_ptr<PDBSymbolCompiland> findOneCompilandForSourceFile(llvm::StringRef Pattern, llvm::pdb::PDB_NameSearchFlags Flags) const
  • public std::unique_ptr<IPDBSourceFile> findOneSourceFile(const llvm::pdb::PDBSymbolCompiland * Compiland, llvm::StringRef Pattern, llvm::pdb::PDB_NameSearchFlags Flags) const
  • public std::unique_ptr<IPDBEnumSourceFiles> findSourceFiles(const llvm::pdb::PDBSymbolCompiland * Compiland, llvm::StringRef Pattern, llvm::pdb::PDB_NameSearchFlags Flags) const
  • public std::unique_ptr<PDBSymbol> findSymbolByAddress(uint64_t Address, llvm::pdb::PDB_SymType Type)
  • public std::unique_ptr<PDBSymbol> findSymbolByRVA(uint32_t RVA, llvm::pdb::PDB_SymType Type)
  • public std::unique_ptr<PDBSymbol> findSymbolBySectOffset(uint32_t Sect, uint32_t Offset, llvm::pdb::PDB_SymType Type)
  • public std::unique_ptr<IPDBEnumSourceFiles> getAllSourceFiles() const
  • public std::unique_ptr<IPDBEnumDataStreams> getDebugStreams() const
  • public std::unique_ptr<IPDBEnumTables> getEnumTables() const
  • public std::unique_ptr<IPDBEnumFrameData> getFrameData() const
  • public std::unique_ptr<PDBSymbolExe> getGlobalScope()
  • public std::unique_ptr<IPDBEnumInjectedSources> getInjectedSources() const
  • public uint64_t getLoadAddress() const
  • public Expected<llvm::pdb::ModuleDebugStreamRef> getModuleDebugStream(uint32_t Index) const
  • public llvm::pdb::NativeExeSymbol & getNativeGlobalScope() const
  • public llvm::pdb::PDBFile & getPDBFile()
  • public const llvm::pdb::PDBFile & getPDBFile() const
  • public uint32_t getRVAFromSectOffset(uint32_t Section, uint32_t Offset) const
  • public std::unique_ptr<IPDBEnumSectionContribs> getSectionContribs() const
  • public std::unique_ptr<IPDBSourceFile> getSourceFileById(uint32_t FileId) const
  • public std::unique_ptr<IPDBEnumSourceFiles> getSourceFilesForCompiland(const llvm::pdb::PDBSymbolCompiland & Compiland) const
  • public std::unique_ptr<PDBSymbol> getSymbolById(llvm::pdb::SymIndexId SymbolId) const
  • public llvm::pdb::SymbolCache & getSymbolCache()
  • public const llvm::pdb::SymbolCache & getSymbolCache() const
  • public uint64_t getVAFromSectOffset(uint32_t Section, uint32_t Offset) const
  • private void initializeExeSymbol()
  • public bool moduleIndexForSectOffset(uint32_t Sect, uint32_t Offset, uint16_t & ModuleIndex) const
  • public bool moduleIndexForVA(uint64_t VA, uint16_t & ModuleIndex) const
  • private void parseSectionContribs()
  • public static Expected<std::string> searchForPdb(const llvm::pdb::NativeSession::PdbSearchOptions & Opts)
  • public bool setLoadAddress(uint64_t Address)
  • public ~NativeSession()

Inherited from IPDBSession:

Methods

NativeSession(
    std::unique_ptr<PDBFile> PdbFile,
    std::unique_ptr<BumpPtrAllocator> Allocator)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:39

Parameters

std::unique_ptr<PDBFile> PdbFile
std::unique_ptr<BumpPtrAllocator> Allocator

bool addressForRVA(uint32_t RVA,
                   uint32_t& Section,
                   uint32_t& Offset) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:58

Parameters

uint32_t RVA
uint32_t& Section
uint32_t& Offset

bool addressForVA(uint64_t VA,
                  uint32_t& Section,
                  uint32_t& Offset) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:56

Parameters

uint64_t VA
uint32_t& Section
uint32_t& Offset

static llvm::Error createFromExe(
    llvm::StringRef Path,
    std::unique_ptr<IPDBSession>& Session)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:47

Parameters

llvm::StringRef Path
std::unique_ptr<IPDBSession>& Session

static llvm::Error createFromPdb(
    std::unique_ptr<MemoryBuffer> MB,
    std::unique_ptr<IPDBSession>& Session)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:43

Parameters

std::unique_ptr<MemoryBuffer> MB
std::unique_ptr<IPDBSession>& Session

static llvm::Error createFromPdbPath(
    llvm::StringRef PdbPath,
    std::unique_ptr<IPDBSession>& Session)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:45

Parameters

llvm::StringRef PdbPath
std::unique_ptr<IPDBSession>& Session

std::unique_ptr<
    IPDBEnumChildren<PDBSymbolCompiland>>
findCompilandsForSourceFile(
    llvm::StringRef Pattern,
    llvm::pdb::PDB_NameSearchFlags Flags) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:88

Parameters

llvm::StringRef Pattern
llvm::pdb::PDB_NameSearchFlags Flags

std::unique_ptr<IPDBEnumLineNumbers>
findLineNumbers(
    const llvm::pdb::PDBSymbolCompiland&
        Compiland,
    const llvm::pdb::IPDBSourceFile& File) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:70

Parameters

const llvm::pdb::PDBSymbolCompiland& Compiland
const llvm::pdb::IPDBSourceFile& File

std::unique_ptr<IPDBEnumLineNumbers>
findLineNumbersByAddress(uint64_t Address,
                         uint32_t Length) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:73

Parameters

uint64_t Address
uint32_t Length

std::unique_ptr<IPDBEnumLineNumbers>
findLineNumbersByRVA(uint32_t RVA,
                     uint32_t Length) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:75

Parameters

uint32_t RVA
uint32_t Length

std::unique_ptr<IPDBEnumLineNumbers>
findLineNumbersBySectOffset(uint32_t Section,
                            uint32_t Offset,
                            uint32_t Length) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:77

Parameters

uint32_t Section
uint32_t Offset
uint32_t Length

std::unique_ptr<PDBSymbolCompiland>
findOneCompilandForSourceFile(
    llvm::StringRef Pattern,
    llvm::pdb::PDB_NameSearchFlags Flags) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:91

Parameters

llvm::StringRef Pattern
llvm::pdb::PDB_NameSearchFlags Flags

std::unique_ptr<IPDBSourceFile> findOneSourceFile(
    const llvm::pdb::PDBSymbolCompiland*
        Compiland,
    llvm::StringRef Pattern,
    llvm::pdb::PDB_NameSearchFlags Flags) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:84

Parameters

const llvm::pdb::PDBSymbolCompiland* Compiland
llvm::StringRef Pattern
llvm::pdb::PDB_NameSearchFlags Flags

std::unique_ptr<IPDBEnumSourceFiles>
findSourceFiles(
    const llvm::pdb::PDBSymbolCompiland*
        Compiland,
    llvm::StringRef Pattern,
    llvm::pdb::PDB_NameSearchFlags Flags) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:81

Parameters

const llvm::pdb::PDBSymbolCompiland* Compiland
llvm::StringRef Pattern
llvm::pdb::PDB_NameSearchFlags Flags

std::unique_ptr<PDBSymbol> findSymbolByAddress(
    uint64_t Address,
    llvm::pdb::PDB_SymType Type)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:61

Parameters

uint64_t Address
llvm::pdb::PDB_SymType Type

std::unique_ptr<PDBSymbol> findSymbolByRVA(
    uint32_t RVA,
    llvm::pdb::PDB_SymType Type)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:63

Parameters

uint32_t RVA
llvm::pdb::PDB_SymType Type

std::unique_ptr<PDBSymbol> findSymbolBySectOffset(
    uint32_t Sect,
    uint32_t Offset,
    llvm::pdb::PDB_SymType Type)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:65

Parameters

uint32_t Sect
uint32_t Offset
llvm::pdb::PDB_SymType Type

std::unique_ptr<IPDBEnumSourceFiles>
getAllSourceFiles() const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:93

std::unique_ptr<IPDBEnumDataStreams>
getDebugStreams() const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:99

std::unique_ptr<IPDBEnumTables> getEnumTables()
    const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:101

std::unique_ptr<IPDBEnumFrameData> getFrameData()
    const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:107

std::unique_ptr<PDBSymbolExe> getGlobalScope()

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:53

std::unique_ptr<IPDBEnumInjectedSources>
getInjectedSources() const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:103

uint64_t getLoadAddress() const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:51

Expected<llvm::pdb::ModuleDebugStreamRef>
getModuleDebugStream(uint32_t Index) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:120

Parameters

uint32_t Index

llvm::pdb::NativeExeSymbol& getNativeGlobalScope()
    const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:112

llvm::pdb::PDBFile& getPDBFile()

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:109

const llvm::pdb::PDBFile& getPDBFile() const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:110

uint32_t getRVAFromSectOffset(
    uint32_t Section,
    uint32_t Offset) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:115

Parameters

uint32_t Section
uint32_t Offset

std::unique_ptr<IPDBEnumSectionContribs>
getSectionContribs() const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:105

std::unique_ptr<IPDBSourceFile> getSourceFileById(
    uint32_t FileId) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:97

Parameters

uint32_t FileId

std::unique_ptr<IPDBEnumSourceFiles>
getSourceFilesForCompiland(
    const llvm::pdb::PDBSymbolCompiland&
        Compiland) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:94

Parameters

const llvm::pdb::PDBSymbolCompiland& Compiland

std::unique_ptr<PDBSymbol> getSymbolById(
    llvm::pdb::SymIndexId SymbolId) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:54

Parameters

llvm::pdb::SymIndexId SymbolId

llvm::pdb::SymbolCache& getSymbolCache()

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:113

const llvm::pdb::SymbolCache& getSymbolCache()
    const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:114

uint64_t getVAFromSectOffset(
    uint32_t Section,
    uint32_t Offset) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:116

Parameters

uint32_t Section
uint32_t Offset

void initializeExeSymbol()

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:123

bool moduleIndexForSectOffset(
    uint32_t Sect,
    uint32_t Offset,
    uint16_t& ModuleIndex) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:118

Parameters

uint32_t Sect
uint32_t Offset
uint16_t& ModuleIndex

bool moduleIndexForVA(uint64_t VA,
                      uint16_t& ModuleIndex) const

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:117

Parameters

uint64_t VA
uint16_t& ModuleIndex

void parseSectionContribs()

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:124

static Expected<std::string> searchForPdb(
    const llvm::pdb::NativeSession::
        PdbSearchOptions& Opts)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:49

Parameters

const llvm::pdb::NativeSession::PdbSearchOptions& Opts

bool setLoadAddress(uint64_t Address)

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:52

Parameters

uint64_t Address

~NativeSession()

Declared at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:41