IDA SDK

- Main Page
- Header Files
- Classes
- Modules

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Attributes | Public Member Functions | List of all members
func_t Class Reference

## Detailed Description

A function is a set of continuous ranges of addresses with characteristics.

Inherits area_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
ushort 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
area_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 Attributes inherited from area_t
ea_t | startEA
| startEA included
ea_t | endEA
| endEA excluded

## 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?
Public Member Functions inherited from area_t
| area_t (void)
| Constructor.
| area_t (ea_t ea1, ea_t ea2)
| Constructor.
int | compare (const area_t &r) const
| Compare two area_t instances, based on the startEA.
bool | operator== (const area_t &r) const
| Compare two area_t's with '=='.
bool | operator!= (const area_t &r) const
| Compare two area_t's with '!='.
bool | operator> (const area_t &r) const
| Compare two area_t's with '<'.
bool | operator< (const area_t &r) const
| Compare two area_t's with '>'.
bool | contains (ea_t ea) const
| Is 'ea' in the address range?
bool | contains (const area_t &r) const
| Is every ea in 'r' also in this area_t?
bool | overlaps (const area_t &r) const
| Is there an ea in 'r' that is also in this area_t?
void | clear (void)
| Set startEA, endEA to 0.
bool | empty (void) const
| Is the size of the area_t <= 0?
asize_t | size (void) const
| Get endEA - startEA.
void | intersect (const area_t &r)
| Assign the area_t to the intersection between the area_t and 'r'.
void | extend (ea_t ea)
| Ensure that the area_t includes 'ea'.
size_t | print (char *buf, size_t bufsize) const
| Print the area_t. More...

## Member Data Documentation

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 area.

ushort func_t::frregs

size of saved registers in frame.

This area is immediately above the local variables area.

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: startEA. 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.

area_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.

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

- funcs.hpp