LLVM 22.0.0git
llvm::pdb::PublicsStream Class Reference

#include "llvm/DebugInfo/PDB/Native/PublicsStream.h"

Public Member Functions

LLVM_ABI PublicsStream (std::unique_ptr< msf::MappedBlockStream > Stream)
LLVM_ABI ~PublicsStream ()
LLVM_ABI Error reload ()
LLVM_ABI uint32_t getSymHash () const
LLVM_ABI uint16_t getThunkTableSection () const
LLVM_ABI uint32_t getThunkTableOffset () const
const GSIHashTablegetPublicsTable () const
FixedStreamArray< support::ulittle32_tgetAddressMap () const
FixedStreamArray< support::ulittle32_tgetThunkMap () const
FixedStreamArray< SectionOffsetgetSectionOffsets () const
LLVM_ABI std::optional< std::pair< codeview::PublicSym32, size_t > > findByAddress (const SymbolStream &Symbols, uint16_t Segment, uint32_t Offset) const
 Find a public symbol by a segment and offset.

Detailed Description

Definition at line 29 of file PublicsStream.h.

Constructor & Destructor Documentation

◆ PublicsStream()

PublicsStream::PublicsStream ( std::unique_ptr< msf::MappedBlockStream > Stream)

Definition at line 40 of file PublicsStream.cpp.

References llvm::move().

◆ ~PublicsStream()

PublicsStream::~PublicsStream ( )
default

References LLVM_ABI.

Member Function Documentation

◆ findByAddress()

std::optional< std::pair< codeview::PublicSym32, size_t > > PublicsStream::findByAddress ( const SymbolStream & Symbols,
uint16_t Segment,
uint32_t Offset ) const

Find a public symbol by a segment and offset.

In case there is more than one symbol (for example due to ICF), the first one is returned.

Returns
If a symbol was found, the symbol at the provided address is returned as well as the index of this symbol in the address map. If the binary was linked with ICF, there might be more symbols with the same address after the returned one. If no symbol is found, std::nullopt is returned.

Definition at line 106 of file PublicsStream.cpp.

References llvm::consumeError(), llvm::codeview::SymbolDeserializer::deserializeAs(), llvm::lower_bound(), llvm::codeview::PublicSym32::Offset, llvm::pdb::Offset, llvm::codeview::PublicSym32::Segment, llvm::pdb::Symbols, and llvm::support::detail::packed_endian_specific_integral< ValueType, Endian, Alignment, ALIGN >::value().

◆ getAddressMap()

FixedStreamArray< support::ulittle32_t > llvm::pdb::PublicsStream::getAddressMap ( ) const
inline

Definition at line 39 of file PublicsStream.h.

◆ getPublicsTable()

const GSIHashTable & llvm::pdb::PublicsStream::getPublicsTable ( ) const
inline

Definition at line 38 of file PublicsStream.h.

◆ getSectionOffsets()

FixedStreamArray< SectionOffset > llvm::pdb::PublicsStream::getSectionOffsets ( ) const
inline

Definition at line 45 of file PublicsStream.h.

◆ getSymHash()

uint32_t PublicsStream::getSymHash ( ) const

Definition at line 45 of file PublicsStream.cpp.

◆ getThunkMap()

FixedStreamArray< support::ulittle32_t > llvm::pdb::PublicsStream::getThunkMap ( ) const
inline

Definition at line 42 of file PublicsStream.h.

◆ getThunkTableOffset()

uint32_t PublicsStream::getThunkTableOffset ( ) const

Definition at line 49 of file PublicsStream.cpp.

◆ getThunkTableSection()

uint16_t PublicsStream::getThunkTableSection ( ) const

Definition at line 46 of file PublicsStream.cpp.

◆ reload()


The documentation for this class was generated from the following files: