Go to the documentation of this file.
15#ifndef LIEF_PDB_PUBLIC_SYMBOL_H
16#define LIEF_PDB_PUBLIC_SYMBOL_H
38 using iterator_category = std::forward_iterator_tag;
39 using value_type = std::unique_ptr<PublicSymbol>;
40 using difference_type = std::ptrdiff_t;
41 using pointer = PublicSymbol*;
42 using reference = PublicSymbol&;
43 using implementation = details::PublicSymbolIt;
47 friend class Iterator;
54 template <
typename RefT>
55 PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {}
60 Iterator(std::unique_ptr<details::PublicSymbolIt> impl);
72 Iterator tmp = *
static_cast<Iterator*
>(
this);
73 ++*
static_cast<Iterator *
>(
this);
80 return static_cast<const Iterator*
>(
this)->
operator*();
84 std::unique_ptr<details::PublicSymbolIt> impl_;
89 enum class FLAGS : uint32_t {
96 std::string
name()
const;
107 uint32_t
RVA()
const;
116 std::ostream&
operator<<(std::ostream& os,
const PublicSymbol& sym)
123 std::unique_ptr<details::PublicSymbol> impl_;
pointer operator->() const
Definition PublicSymbol.hpp:49
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:71
PointerProxy operator->() const
Definition PublicSymbol.hpp:79
friend bool operator!=(const Iterator &LHS, const Iterator &RHS)
Definition PublicSymbol.hpp:65
This class provides general information (RVA, name) about a symbol from the PDB's public symbol strea...
Definition PublicSymbol.hpp:34
friend std::ostream & operator<<(std::ostream &os, const PublicSymbol &sym)
Definition PublicSymbol.hpp:116
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