LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::MachO::IndirectBindingInfo Class Reference

This class represents a binding operation infered from the indirect symbol table. More...

#include <IndirectBindingInfo.hpp>

Inheritance diagram for LIEF::MachO::IndirectBindingInfo:
Collaboration diagram for LIEF::MachO::IndirectBindingInfo:

Public Member Functions

 IndirectBindingInfo (SegmentCommand &segment, Symbol &symbol, int32_t ordinal, DylibCommand *dylib, uint64_t address)
IndirectBindingInfooperator= (const IndirectBindingInfo &other)=default
 IndirectBindingInfo (const IndirectBindingInfo &other)=default
IndirectBindingInfooperator= (IndirectBindingInfo &&) noexcept=default
 IndirectBindingInfo (IndirectBindingInfo &&) noexcept=default
BindingInfo::TYPES type () const override
 The type of the binding. This type provides the origin of the binding (LC_DYLD_INFO or LC_DYLD_CHAINED_FIXUPS).
 ~IndirectBindingInfo () override=default
Public Member Functions inherited from LIEF::MachO::BindingInfo
 BindingInfo ()=default
 BindingInfo (const BindingInfo &other)
BindingInfooperator= (const BindingInfo &other)
 BindingInfo (BindingInfo &&) noexcept=default
BindingInfooperator= (BindingInfo &&) noexcept=default
void swap (BindingInfo &other) noexcept
bool has_segment () const
 Check if a MachO::SegmentCommand is associated with this binding.
const SegmentCommandsegment () const
 The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a SegmentCommand.
SegmentCommandsegment ()
bool has_library () const
 Check if a MachO::DylibCommand is tied with the BindingInfo.
const DylibCommandlibrary () const
 MachO::DylibCommand associated with the BindingInfo or a nullptr if not present.
DylibCommandlibrary ()
bool has_symbol () const
 Check if a MachO::Symbol is associated with the BindingInfo.
const Symbolsymbol () const
 MachO::Symbol associated with the BindingInfo or a nullptr if not present.
Symbolsymbol ()
virtual uint64_t address () const
 Address of the binding.
virtual void address (uint64_t addr)
int32_t library_ordinal () const
void library_ordinal (int32_t ordinal)
int64_t addend () const
 Value added to the segment's virtual address when bound.
void addend (int64_t addend)
bool is_weak_import () const
void set_weak_import (bool val=true)
 ~BindingInfo () override=default
void accept (Visitor &visitor) const override
template<class T>
const T * cast () const
template<class T>
T * cast ()
Public Member Functions inherited from LIEF::Object
 Object ()
 Object (const Object &other)
Objectoperator= (const Object &other)
 Object (Object &&other) noexcept=default
Objectoperator= (Object &&other) noexcept=default
template<class T>
output_t< T > as ()
template<class T>
output_const_t< T > as () const
virtual bool operator== (const Object &other) const
virtual bool operator!= (const Object &other) const
virtual ~Object ()

Static Public Member Functions

static bool classof (const BindingInfo *info)

Additional Inherited Members

Public Types inherited from LIEF::MachO::BindingInfo
enum class  TYPES {
  UNKNOWN = 0 , DYLD_INFO , CHAINED , CHAINED_LIST ,
  INDIRECT_SYMBOL
}
Public Types inherited from LIEF::Object
template<class T>
using output_t = add_pointer_t<decay_t<T>>
template<class T>
using output_const_t = add_pointer_t<add_const_t<decay_t<T>>>

Detailed Description

This class represents a binding operation infered from the indirect symbol table.

Constructor & Destructor Documentation

◆ IndirectBindingInfo() [1/3]

LIEF::MachO::IndirectBindingInfo::IndirectBindingInfo ( SegmentCommand & segment,
Symbol & symbol,
int32_t ordinal,
DylibCommand * dylib,
uint64_t address )
inline

◆ IndirectBindingInfo() [2/3]

LIEF::MachO::IndirectBindingInfo::IndirectBindingInfo ( const IndirectBindingInfo & other)
default

References IndirectBindingInfo().

◆ IndirectBindingInfo() [3/3]

LIEF::MachO::IndirectBindingInfo::IndirectBindingInfo ( IndirectBindingInfo && )
defaultnoexcept

References IndirectBindingInfo().

◆ ~IndirectBindingInfo()

LIEF::MachO::IndirectBindingInfo::~IndirectBindingInfo ( )
overridedefault

References LIEF_API.

Member Function Documentation

◆ classof()

bool LIEF::MachO::IndirectBindingInfo::classof ( const BindingInfo * info)
inlinestatic

◆ operator=() [1/2]

IndirectBindingInfo & LIEF::MachO::IndirectBindingInfo::operator= ( const IndirectBindingInfo & other)
default

References IndirectBindingInfo().

◆ operator=() [2/2]

IndirectBindingInfo & LIEF::MachO::IndirectBindingInfo::operator= ( IndirectBindingInfo && )
defaultnoexcept

References IndirectBindingInfo().

◆ type()

BindingInfo::TYPES LIEF::MachO::IndirectBindingInfo::type ( ) const
inlineoverridevirtual

The type of the binding. This type provides the origin of the binding (LC_DYLD_INFO or LC_DYLD_CHAINED_FIXUPS).

Implements LIEF::MachO::BindingInfo.

References LIEF::MachO::BindingInfo::BindingInfo(), LIEF::MachO::BindingInfo::INDIRECT_SYMBOL, and type().

Referenced by type().


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