Go to the documentation of this file.
15#ifndef LIEF_PDB_PUBLIC_SYMBOL_H
16#define LIEF_PDB_PUBLIC_SYMBOL_H
36 using iterator_category = std::forward_iterator_tag;
37 using value_type = std::unique_ptr<PublicSymbol>;
38 using difference_type = std::ptrdiff_t;
39 using pointer = PublicSymbol*;
40 using reference = PublicSymbol&;
41 using implementation = details::PublicSymbolIt;
45 friend class Iterator;
52 template <
typename RefT>
53 PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {}
58 Iterator(std::unique_ptr<details::PublicSymbolIt> impl);
70 Iterator tmp = *
static_cast<Iterator*
>(
this);
71 ++*
static_cast<Iterator *
>(
this);
78 return static_cast<const Iterator*
>(
this)->
operator*();
82 std::unique_ptr<details::PublicSymbolIt> impl_;
87 enum class FLAGS : uint32_t {
94 std::string
name()
const;
105 uint32_t
RVA()
const;
112 std::unique_ptr<details::PublicSymbol> impl_;
pointer operator->() const
Definition PublicSymbol.hpp:47
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:69
PointerProxy operator->() const
Definition PublicSymbol.hpp:77
friend bool operator!=(const Iterator &LHS, const Iterator &RHS)
Definition PublicSymbol.hpp:63
This class provides general information (RVA, name) about a symbol from the PDB's public symbol strea...
Definition PublicSymbol.hpp:32
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 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 PDB/CompilationUnit.hpp:29
Definition PDB/CompilationUnit.hpp:27
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41