Routines to manipulate function stack frames, stack variables, register variables and local labels.
More...
|
| | DECLARE_TYPE_AS_MOVABLE (stkpnt_t) |
| | DECLARE_TYPE_AS_MOVABLE (llabel_t) |
| idaman DEPRECATED bool ida_export | add_frame (func_t *pfn, sval_t frsize, ushort frregs, asize_t argsize) |
| | Add function frame.
|
| idaman DEPRECATED bool ida_export | del_frame (func_t *pfn) |
| | Delete a function frame.
|
| idaman DEPRECATED bool ida_export | set_frame_size (func_t *pfn, asize_t frsize, ushort frregs, asize_t argsize) |
| | Set size of function frame.
|
| idaman DEPRECATED asize_t ida_export | get_frame_size (const func_t *pfn) |
| | Get full size of a function frame.
|
| idaman DEPRECATED int ida_export | get_frame_retsize (const func_t *pfn) |
| | Get size of function return address.
|
| idaman DEPRECATED void ida_export | get_frame_part (range_t *range, const func_t *pfn, frame_part_t part) |
| | Get offsets of the frame part in the frame.
|
| idaman DEPRECATED bool ida_export | get_func_frame (tinfo_t *out, const func_t *pfn) |
| | Get type of function frame.
|
| DEPRECATED sval_t | soff_to_fpoff (func_t *pfn, uval_t soff) |
| | Convert struct offsets into fp-relative offsets.
|
| idaman DEPRECATED bool ida_export | update_fpd (func_t *pfn, asize_t fpd) |
| | Update frame pointer delta.
|
| idaman bool ida_export | set_purged (ea_t ea, int nbytes, bool override_old_value) |
| | Set the number of purged bytes for a function or data item (funcptr).
|
| idaman bool ida_export | add_stkvar (const insn_t &insn, const op_t &x, sval_t v, int stkvar_flags) |
| | Automatically add stack variable.
|
| idaman DEPRECATED bool ida_export | define_stkvar (func_t *pfn, const char *name, sval_t off, const tinfo_t &tif, const struct value_repr_t *repr=nullptr) |
| | Define/redefine a stack variable.
|
| idaman DEPRECATED bool ida_export | add_frame_member (const func_t *pfn, const char *name, uval_t offset, const tinfo_t &tif, const struct value_repr_t *repr=nullptr, uint etf_flags=0) |
| | Add member to the frame type.
|
| THREAD_SAFE bool | is_anonymous_member_name (const char *name) |
| | Is member name prefixed with "anonymous"?
|
| THREAD_SAFE bool | is_dummy_member_name (const char *name) |
| | Is member name an auto-generated name?
|
| idaman bool ida_export | is_special_frame_member (tid_t tid) |
| | Is stkvar with TID the return address slot or the saved registers slot ?
|
| idaman DEPRECATED bool ida_export | set_frame_member_type (const func_t *pfn, uval_t offset, const tinfo_t &tif, const struct value_repr_t *repr=nullptr, uint etf_flags=0) |
| | Change type of the frame member.
|
| idaman DEPRECATED bool ida_export | delete_frame_members (const func_t *pfn, uval_t start_offset, uval_t end_offset) |
| | Delete frame members.
|
| idaman DEPRECATED ssize_t ida_export | build_stkvar_name (qstring *buf, const func_t *pfn, sval_t v) |
| | Build automatic stack variable name.
|
| idaman DEPRECATED ea_t ida_export | calc_stkvar_struc_offset (func_t *pfn, const insn_t &insn, int n) |
| | Calculate offset of stack variable in the frame structure.
|
| idaman DEPRECATED sval_t ida_export | calc_frame_offset (func_t *pfn, sval_t off, const insn_t *insn=nullptr, const op_t *op=nullptr) |
| | Calculate the offset of stack variable in the frame.
|
| idaman DEPRECATED int ida_export | delete_wrong_frame_info (func_t *pfn, bool idaapi should_reanalyze(const insn_t &insn)) |
| | Find and delete wrong frame info.
|
| idaman DEPRECATED bool ida_export | add_auto_stkpnt (func_t *pfn, ea_t ea, sval_t delta) |
| | Add automatic SP register change point.
|
| idaman bool ida_export | add_user_stkpnt (ea_t ea, sval_t delta) |
| | Add user-defined SP register change point.
|
| idaman DEPRECATED bool ida_export | del_stkpnt (func_t *pfn, ea_t ea) |
| | Delete SP register change point.
|
| idaman DEPRECATED sval_t ida_export | get_spd (func_t *pfn, ea_t ea) |
| | Get difference between the initial and current values of ESP.
|
| idaman DEPRECATED sval_t ida_export | get_effective_spd (func_t *pfn, ea_t ea) |
| | Get effective difference between the initial and current values of ESP.
|
| idaman DEPRECATED sval_t ida_export | get_sp_delta (func_t *pfn, ea_t ea) |
| | Get modification of SP made at the specified location.
|
| idaman DEPRECATED bool ida_export | set_auto_spd (func_t *pfn, ea_t ea, sval_t new_spd) |
| | Add such an automatic SP register change point so that at EA the new cumulative SP delta (that is, the difference between the initial and current values of SP) would be equal to NEW_SPD.
|
| idaman bool ida_export | recalc_spd (ea_t cur_ea) |
| | Recalculate SP delta for an instruction that stops execution.
|
| idaman DEPRECATED bool ida_export | recalc_spd_for_basic_block (func_t *pfn, ea_t cur_ea) |
| | Recalculate SP delta for the current instruction.
|
| | DECLARE_TYPE_AS_MOVABLE (xreflist_entry_t) |
| idaman DEPRECATED void ida_export | build_stkvar_xrefs (xreflist_t *out, func_t *pfn, uval_t start_offset, uval_t end_offset) |
| | Fill 'out' with a list of all the xrefs made from function 'pfn' to specified range of the pfn's stack frame.
|
| idaman bool ida_export | add_frame_ea (ea_t func_ea, sval_t frsize, ushort frregs, asize_t argsize) |
| | Add function frame.
|
| idaman bool ida_export | del_frame_ea (ea_t func_ea) |
| | Delete a function frame.
|
| idaman bool ida_export | set_frame_size_ea (ea_t func_ea, asize_t frsize, ushort frregs, asize_t argsize) |
| | Set size of function frame.
|
| idaman asize_t ida_export | get_frame_size_ea (ea_t func_ea) |
| | Get full size of a function frame.
|
| idaman int ida_export | get_frame_retsize_ea (ea_t func_ea) |
| | Get size of function return address.
|
| idaman bool ida_export | get_frame_part_ea (range_t *range, ea_t func_ea, frame_part_t part) |
| | Get offsets of the frame part in the frame.
|
| ea_t | frame_off_args_ea (ea_t func_ea) |
| | Get starting address of arguments section.
|
| ea_t | frame_off_retaddr_ea (ea_t func_ea) |
| | Get starting address of return address section.
|
| ea_t | frame_off_savregs_ea (ea_t func_ea) |
| | Get starting address of saved registers section.
|
| ea_t | frame_off_lvars_ea (ea_t func_ea) |
| | Get start address of local variables section.
|
| DEPRECATED ea_t | frame_off_args (const func_t *pfn) |
| | Get starting address of arguments section.
|
| DEPRECATED ea_t | frame_off_retaddr (const func_t *pfn) |
| | Get starting address of return address section.
|
| DEPRECATED ea_t | frame_off_savregs (const func_t *pfn) |
| | Get starting address of saved registers section.
|
| DEPRECATED ea_t | frame_off_lvars (const func_t *pfn) |
| | Get start address of local variables section.
|
| idaman bool ida_export | get_func_frame_ea (tinfo_t *out, ea_t func_ea) |
| | Get type of function frame.
|
| bool | get_func_frame (tinfo_t *tif, ea_t ea) |
| idaman sval_t ida_export | soff_to_fpoff_ea (ea_t func_ea, uval_t soff) |
| | Convert struct offsets into fp-relative offsets.
|
| idaman bool ida_export | update_fpd_ea (ea_t func_ea, asize_t fpd) |
| | Update frame pointer delta.
|
| idaman bool ida_export | define_stkvar_ea (ea_t func_ea, const char *name, sval_t off, const tinfo_t &tif, const struct value_repr_t *repr=nullptr) |
| | Define/redefine a stack variable.
|
| idaman bool ida_export | add_frame_member_ea (ea_t func_ea, const char *name, uval_t offset, const tinfo_t &tif, const struct value_repr_t *repr=nullptr, uint etf_flags=0) |
| | Add member to the frame type.
|
| idaman bool ida_export | set_frame_member_type_ea (ea_t func_ea, uval_t offset, const tinfo_t &tif, const struct value_repr_t *repr=nullptr, uint etf_flags=0) |
| | Change type of the frame member.
|
| idaman bool ida_export | delete_frame_members_ea (ea_t func_ea, uval_t start_offset, uval_t end_offset) |
| | Delete frame members.
|
| idaman ssize_t ida_export | build_stkvar_name_ea (qstring *buf, ea_t func_ea, sval_t v) |
| | Build automatic stack variable name.
|
| idaman ea_t ida_export | calc_stkvar_struc_offset_ea (ea_t func_ea, const insn_t &insn, int n) |
| | Calculate offset of stack variable in the frame structure.
|
| idaman sval_t ida_export | calc_frame_offset_ea (ea_t func_ea, sval_t off, const insn_t *insn=nullptr, const op_t *op=nullptr) |
| | Calculate the offset of stack variable in the frame.
|
| idaman int ida_export | delete_wrong_frame_info_ea (ea_t func_ea, bool idaapi should_reanalyze(const insn_t &insn)) |
| | Find and delete wrong frame info.
|
| idaman void ida_export | build_stkvar_xrefs_ea (xreflist_t *out, ea_t func_ea, uval_t start_offset, uval_t end_offset) |
| | Fill 'out' with a list of all the xrefs from a function to the specified range of the function's stack frame.
|
| idaman int ida_export | add_func_regvar (ea_t func_ea, ea_t ea1, ea_t ea2, const char *canon, const char *user, const char *cmt) |
| | Define a register variable.
|
| idaman ssize_t ida_export | find_func_regvar (regvar_t *rv, ea_t func_ea, ea_t ea1, ea_t ea2, const char *canon, const char *user) |
| | Find a register variable definition (powerful version).
|
| ssize_t | find_func_regvar (regvar_t *rv, ea_t func_ea, ea_t ea, const char *canon) |
| | Find a register variable definition.
|
| bool | has_func_regvar (ea_t func_ea, ea_t ea) |
| | Is there a register variable definition?
|
| DEPRECATED bool | has_regvar (func_t *pfn, ea_t ea) |
| | Is there a register variable definition?
|
| idaman int ida_export | rename_func_regvar (ea_t func_ea, ssize_t index, const char *user) |
| | Rename a register variable.
|
| idaman int ida_export | set_func_regvar_cmt (ea_t func_ea, ssize_t index, const char *cmt) |
| | Set comment for a register variable.
|
| idaman int ida_export | set_func_regvar_range (ea_t func_ea, ssize_t index, const range_t &range) |
| | Update the address range of a register variable by index.
|
| idaman int ida_export | del_func_regvar (ea_t func_ea, ea_t ea1, ea_t ea2, const char *canon) |
| | Delete a register variable definition.
|
| idaman size_t ida_export | get_func_regvar_qty (ea_t func_ea) |
| | Get the number of register variables for a function.
|
| idaman bool ida_export | get_func_regvars (regvars_t *out, ea_t func_ea) |
| | Get all register variables for a function.
|
| idaman bool ida_export | get_func_regvar (regvar_t *out, ea_t func_ea, ssize_t index) |
| | Get a copy of a register variable by index.
|
| idaman bool ida_export | add_func_auto_stkpnt (ea_t func_ea, ea_t ea, sval_t delta) |
| | Add automatic SP register change point.
|
| idaman bool ida_export | del_func_stkpnt (ea_t func_ea, ea_t ea) |
| | Delete SP register change point.
|
| idaman sval_t ida_export | get_func_spd (ea_t func_ea, ea_t ea) |
| | Get difference between the initial and current values of ESP.
|
| idaman sval_t ida_export | get_func_effective_spd (ea_t func_ea, ea_t ea) |
| | Get effective difference between the initial and current values of ESP.
|
| idaman sval_t ida_export | get_func_sp_delta (ea_t func_ea, ea_t ea) |
| | Get modification of SP made at the specified location.
|
| idaman bool ida_export | set_func_auto_spd (ea_t func_ea, ea_t ea, sval_t new_spd) |
| | Set the cumulative SP delta at the given address.
|
| idaman bool ida_export | recalc_func_spd_for_basic_block (ea_t func_ea, ea_t cur_ea) |
| | Recalculate SP delta for the current instruction.
|
| idaman size_t ida_export | get_func_stkpnt_qty (ea_t func_ea) |
| | Get the number of SP change points for a function.
|
| idaman bool ida_export | get_func_stkpnts (stkpnts_t *out, ea_t func_ea) |
| | Get all SP change points for a function.
|
| idaman size_t ida_export | get_func_llabel_qty (ea_t func_ea) |
| | Get the number of local labels for a function.
|
| idaman bool ida_export | get_func_llabels (llabels_t *out, ea_t func_ea) |
| | Get all local labels for a function.
|
| typedef qvector< regvar_t > | regvars_t |
| | DECLARE_TYPE_AS_MOVABLE (regvar_t) |
| idaman DEPRECATED int ida_export | add_regvar (func_t *pfn, ea_t ea1, ea_t ea2, const char *canon, const char *user, const char *cmt) |
| | Define a register variable.
|
| idaman DEPRECATED regvar_t *ida_export | find_regvar (func_t *pfn, ea_t ea1, ea_t ea2, const char *canon, const char *user) |
| | Find a register variable definition (powerful version).
|
| DEPRECATED regvar_t * | find_regvar (func_t *pfn, ea_t ea, const char *canon) |
| | Find a register variable definition.
|
| idaman DEPRECATED int ida_export | rename_regvar (func_t *pfn, regvar_t *v, const char *user) |
| | Rename a register variable.
|
| idaman DEPRECATED int ida_export | set_regvar_cmt (func_t *pfn, regvar_t *v, const char *cmt) |
| | Set comment for a register variable.
|
| idaman DEPRECATED int ida_export | del_regvar (func_t *pfn, ea_t ea1, ea_t ea2, const char *canon) |
| | Delete a register variable definition.
|