LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Class that represents a function in the binary. More...
#include <Function.hpp>
Public Types | |
enum class | FLAGS : uint32_t { NONE = 0 , CONSTRUCTOR = 1 << 0 , DESTRUCTOR = 1 << 1 , DEBUG_INFO = 1 << 2 , EXPORTED = 1 << 3 , IMPORTED = 1 << 4 } |
Flags used to characterize the semantic of the function. More... | |
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 | |
Function ()=default | |
Function (const std::string &name) | |
Function (uint64_t address) | |
Function (const std::string &name, uint64_t address) | |
Function (const std::string &name, uint64_t address, FLAGS flags) | |
Function (const Function &)=default | |
Function & | operator= (const Function &)=default |
~Function () override=default | |
std::vector< FLAGS > | flags_list () const |
List of FLAGS. | |
FLAGS | flags () const |
Function & | add (FLAGS f) |
Add a flag to the current function. | |
bool | has (FLAGS f) const |
Check if the function has the given flag. | |
uint64_t | address () const |
Address of the current function. For functions that are set with the FLAGS::IMPORTED flag, this value is likely 0. | |
void | address (uint64_t address) |
void | accept (Visitor &visitor) const override |
Public Member Functions inherited from LIEF::Symbol | |
Symbol ()=default | |
Symbol (std::string name) | |
Symbol (std::string name, uint64_t value) | |
Symbol (std::string name, uint64_t value, uint64_t size) | |
Symbol (const Symbol &)=default | |
Symbol & | operator= (const Symbol &)=default |
~Symbol () override=default | |
void | swap (Symbol &other) noexcept |
virtual const std::string & | name () const |
Return the symbol's name. | |
virtual std::string & | name () |
virtual void | name (std::string name) |
Set symbol name. | |
virtual uint64_t | value () const |
virtual void | value (uint64_t value) |
virtual uint64_t | size () const |
This size of the symbol (when applicable) | |
virtual void | size (uint64_t value) |
void | accept (Visitor &visitor) const override |
Method so that the visitor can visit us. | |
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 () |
Class that represents a function in the binary.
|
strong |
Flags used to characterize the semantic of the function.
Enumerator | |
---|---|
NONE | |
CONSTRUCTOR | The function acts as constructor. Usually this flag is associated with functions that are located in the |
DESTRUCTOR | The function acts a destructor. Usually this flag is associated with functions that are located in the |
DEBUG_INFO | The function is associated with Debug information. |
EXPORTED | The function is exported by the binary and the address() method returns its virtual address in the binary. |
IMPORTED | The function is imported by the binary and the address() should return 0. |
|
default |
|
inline |
|
inline |
|
inline |
|
inline |
|
default |
|
overridedefault |
|
overridevirtual |
Implements LIEF::Object.
|
inline |
Address of the current function. For functions that are set with the FLAGS::IMPORTED flag, this value is likely 0.
|
inline |
|
inline |
|
inline |
Check if the function has the given flag.