|
LIEF: Library to Instrument Executable Formats Version 1.0.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 semantics 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 (Symbol &&)=default | |
| Symbol & | operator= (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) |
| Object (Object &&other) noexcept=default | |
| Object & | operator= (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 () |
Class that represents a function in the binary.
|
strong |
Flags used to characterize the semantics of the function.
| Enumerator | |
|---|---|
| NONE | |
| CONSTRUCTOR | The function acts as a constructor. Usually this flag is associated with functions that are located in the .init_array, __mod_init_func or .tls sections |
| DESTRUCTOR | The function acts as a destructor. Usually this flag is associated with functions that are located in the .fini_array or __mod_term_func sections |
| 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 |
Referenced by add(), Function(), Function(), Function(), operator<<, and operator=().
|
inline |
References LIEF::Symbol::name(), and LIEF::Symbol::Symbol().
|
inline |
References address(), and Function().
|
inline |
References address(), LIEF::Symbol::name(), and LIEF::Symbol::Symbol().
|
inline |
References address(), flags(), Function(), and LIEF::Symbol::name().
|
default |
References Function().
|
overridedefault |
|
overridevirtual |
Implements LIEF::Object.
Add a flag to the current function.
References Function().
|
inline |
Address of the current function. For functions that are set with the FLAGS::IMPORTED flag, this value is likely 0.
Referenced by address(), Function(), Function(), and Function().
|
inline |
References address().
|
inline |
Referenced by Function().
|
inline |
Check if the function has the given flag.
References Function().