LIEF: Library to Instrument Executable Formats Version 0.15.1
|
This class represents a symbol binding operation associated with the LC_DYLD_INFO bytecode. More...
#include <DyldBindingInfo.hpp>
Public Types | |
enum class | CLASS : uint64_t { WEAK = 1u , LAZY = 2u , STANDARD = 3u , THREADED = 100u } |
enum class | TYPE : uint64_t { POINTER = 1u , TEXT_ABSOLUTE32 = 2u , TEXT_PCREL32 = 3u } |
Public Types inherited from LIEF::MachO::BindingInfo | |
enum class | TYPES { UNKNOWN = 0 , DYLD_INFO , CHAINED , CHAINED_LIST } |
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>>> |
Public Member Functions | |
DyldBindingInfo ()=default | |
DyldBindingInfo (CLASS cls, TYPE type, uint64_t address, int64_t addend=0, int32_t oridnal=0, bool is_weak=false, bool is_non_weak_definition=false, uint64_t offset=0) | |
DyldBindingInfo & | operator= (const DyldBindingInfo &other)=default |
DyldBindingInfo (const DyldBindingInfo &other)=default | |
DyldBindingInfo (DyldBindingInfo &&) noexcept=default | |
void | swap (DyldBindingInfo &other) noexcept |
CLASS | binding_class () const |
Class of the binding (weak, lazy, ...) | |
void | binding_class (CLASS bind_class) |
TYPE | binding_type () const |
Type of the binding. Most of the times it's TYPE::POINTER. | |
void | binding_type (TYPE type) |
bool | is_non_weak_definition () const |
void | set_non_weak_definition (bool val) |
uint64_t | original_offset () const |
Original relative offset of the binding opcodes. | |
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) | |
~DyldBindingInfo () override=default | |
void | accept (Visitor &visitor) const override |
Public Member Functions inherited from LIEF::MachO::BindingInfo | |
BindingInfo ()=default | |
BindingInfo (const BindingInfo &other) | |
void | swap (BindingInfo &other) noexcept |
bool | has_segment () const |
Check if a MachO::SegmentCommand is associated with this binding. | |
const SegmentCommand * | segment () const |
The MachO::SegmentCommand associated with the BindingInfo or a nullptr of it is not bind to a SegmentCommand. | |
SegmentCommand * | segment () |
bool | has_library () const |
Check if a MachO::DylibCommand is tied with the BindingInfo. | |
const DylibCommand * | library () const |
MachO::DylibCommand associated with the BindingInfo or a nullptr if not present. | |
DylibCommand * | library () |
bool | has_symbol () const |
Check if a MachO::Symbol is associated with the BindingInfo. | |
const Symbol * | symbol () const |
MachO::Symbol associated with the BindingInfo or a nullptr if not present. | |
Symbol * | symbol () |
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 | |
Public Member Functions inherited from LIEF::Object | |
Object () | |
Object (const Object &other) | |
Object & | operator= (const Object &other) |
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) |
This class represents a symbol binding operation associated with the LC_DYLD_INFO bytecode.
It does not represent a structure that exists in the Mach-O format specifications but it provides a view on an entry of the Dyld binding opcodes.
|
strong |
|
strong |
|
default |
LIEF::MachO::DyldBindingInfo::DyldBindingInfo | ( | CLASS | cls, |
TYPE | type, | ||
uint64_t | address, | ||
int64_t | addend = 0, | ||
int32_t | oridnal = 0, | ||
bool | is_weak = false, | ||
bool | is_non_weak_definition = false, | ||
uint64_t | offset = 0 ) |
|
default |
|
defaultnoexcept |
|
overridedefault |
|
overridevirtual |
Reimplemented from LIEF::MachO::BindingInfo.
|
inline |
Class of the binding (weak, lazy, ...)
|
inline |
|
inline |
Type of the binding. Most of the times it's TYPE::POINTER.
|
inline |
|
inlinestatic |
References LIEF::MachO::BindingInfo::type().
|
inline |
|
default |
|
inline |
Original relative offset of the binding opcodes.
|
inline |
|
noexcept |
|
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.