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 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?
bool need_prolog_analysis (void) const
 Needs prolog analysis?
 func_t (ea_t start=0, ea_t end=0, flags_t f=0)

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

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