IDA SDK
|
A function is a set of continuous ranges of addresses with characteristics.
Inherits range_t.
Public Attributes | |
ushort | flags |
Function flags | |
union { | |
struct { | |
uval_t frame | |
netnode id of frame structure - see frame.hpp | |
asize_t frsize | |
size of local variables part of frame in bytes. More... | |
ushort frregs | |
size of saved registers in frame. More... | |
asize_t argsize | |
number of bytes purged from the stack upon returning | |
asize_t fpd | |
frame pointer delta. More... | |
bgcolor_t color | |
user defined function color | |
uint32 pntqty | |
number of SP change points | |
stkpnt_t * points | |
array of SP change points. More... | |
int regvarqty | |
number of register variables (-1-not read in yet) use find_regvar() to read register variables | |
regvar_t * regvars | |
array of register variables. More... | |
int llabelqty | |
number of local labels | |
llabel_t * llabels | |
local labels. More... | |
int regargqty | |
number of register arguments | |
regarg_t * regargs | |
unsorted array of register arguments. More... | |
int tailqty | |
number of function tails | |
range_t * tails | |
array of tails, sorted by ea. More... | |
} | |
attributes of a function entry chunk | |
struct { | |
ea_t owner | |
the address of the main function possessing this tail | |
int refqty | |
number of referers | |
ea_t * referers | |
array of referers (function start addresses). More... | |
} | |
attributes of a function tail chunk | |
}; | |
Public Member Functions | |
bool | is_far (void) const |
Is a far function? | |
bool | does_return (void) const |
Does function return? | |
bool | analyzed_sp (void) const |
Has SP-analysis been performed? | |
func_t (ea_t start=0, ea_t end=0, flags_t f=0) | |
asize_t func_t::frsize |
size of local variables part of frame in bytes.
If FUNC_FRAME is set and fpd==0, the frame pointer (EBP) is assumed to point to the top of the local variables range.
ushort func_t::frregs |
size of saved registers in frame.
This range is immediately above the local variables range.
asize_t func_t::fpd |
frame pointer delta.
(usually 0, i.e. realBP==typicalBP) use update_fpd() to modify it.
stkpnt_t* func_t::points |
array of SP change points.
use ...stkpnt...() functions to access this array.
regvar_t* func_t::regvars |
array of register variables.
this array is sorted by: start_ea. use ...regvar...() functions to access this array.
llabel_t* func_t::llabels |
local labels.
this array is sorted by ea. use ...llabel...() functions to access this array.
regarg_t* func_t::regargs |
unsorted array of register arguments.
use ...regarg...() functions to access this array.
range_t* func_t::tails |
array of tails, sorted by ea.
use func_tail_iterator_t to access function tails.
ea_t* func_t::referers |
array of referers (function start addresses).
use func_parent_iterator_t to access the referers.