Go to the documentation of this file.
15#ifndef LIEF_PDB_PUBLIC_SYMBOL_H
16#define LIEF_PDB_PUBLIC_SYMBOL_H
37 using iterator_category = std::forward_iterator_tag;
38 using value_type = std::unique_ptr<PublicSymbol>;
39 using difference_type = std::ptrdiff_t;
40 using pointer = PublicSymbol*;
41 using reference = PublicSymbol&;
42 using implementation = details::PublicSymbolIt;
46 friend class Iterator;
53 template <
typename RefT>
54 PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {}
59 Iterator(std::unique_ptr<details::PublicSymbolIt> impl);
71 Iterator tmp = *
static_cast<Iterator*
>(
this);
72 ++*
static_cast<Iterator *
>(
this);
79 return static_cast<const Iterator*
>(
this)->
operator*();
83 std::unique_ptr<details::PublicSymbolIt> impl_;
88 enum class FLAGS : uint32_t {
95 std::string
name()
const;
106 uint32_t
RVA()
const;
115 std::ostream&
operator<<(std::ostream& os,
const PublicSymbol& sym)
122 std::unique_ptr<details::PublicSymbol> impl_;
pointer operator->() const
Definition PublicSymbol.hpp:48
Iterator(std::unique_ptr< details::PublicSymbolIt > impl)
Iterator(const Iterator &)
friend bool operator==(const Iterator &LHS, const Iterator &RHS)
std::unique_ptr< PublicSymbol > operator*() const
Iterator operator++(int)
Definition PublicSymbol.hpp:70
PointerProxy operator->() const
Definition PublicSymbol.hpp:78
friend bool operator!=(const Iterator &LHS, const Iterator &RHS)
Definition PublicSymbol.hpp:64
This class provides general information (RVA, name) about a symbol from the PDB's public symbol strea...
Definition PublicSymbol.hpp:33
friend std::ostream & operator<<(std::ostream &os, const PublicSymbol &sym)
Definition PublicSymbol.hpp:115
PublicSymbol(std::unique_ptr< details::PublicSymbol > impl)
std::string name() const
Name of the symbol.
std::string demangled_name() const
Demangled representation of the symbol.
std::string to_string() const
std::string section_name() const
Name of the section in which this symbol is defined (e.g. .text).
uint32_t RVA() const
Relative Virtual Address of this symbol.
Definition BuildMetadata.hpp:26
Definition BuildMetadata.hpp:24
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41