IDA C++ SDK 9.2
Loading...
Searching...
No Matches
ea-based register variables

Topics

 Register variable error codes
 Return values for functions in described in Register variables.

Functions

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.

Detailed Description

Function Documentation

◆ add_func_regvar()

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.

Parameters
func_eaany address of the function
ea1,ea2range of addresses within the function where the definition will be used
canonname of a general register
useruser-defined name for the register
cmtcomment for the definition
Returns
Register variable error codes

◆ find_func_regvar() [1/2]

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

One of 'canon' and 'user' should be nullptr. If both 'canon' and 'user' are nullptr it returns the first regvar definition in the range.

Parameters
rvif not nullptr, a copy of the found regvar is stored here
func_eaany address of the function
ea1,ea2range of addresses to search. ea1==BADADDR means the entire function
canonname of a general register
useruser-defined name for the register
Returns
index of the register variable, or -1 if not found

◆ find_func_regvar() [2/2]

ssize_t find_func_regvar ( regvar_t * rv,
ea_t func_ea,
ea_t ea,
const char * canon )
inline

Find a register variable definition.

Parameters
rvif not nullptr, a copy of the found regvar is stored here
func_eaany address of the function
eacurrent address
canonname of a general register
Returns
index of the register variable, or -1 if not found

◆ has_func_regvar()

bool has_func_regvar ( ea_t func_ea,
ea_t ea )
inline

Is there a register variable definition?

Parameters
func_eaany address of the function
eacurrent address

◆ has_regvar()

DEPRECATED bool has_regvar ( func_t * pfn,
ea_t ea )
inline

Is there a register variable definition?

Deprecated
Use has_func_regvar() for safer access.
Parameters
pfnfunction in question
eacurrent address

◆ rename_func_regvar()

idaman int ida_export rename_func_regvar ( ea_t func_ea,
ssize_t index,
const char * user )

Rename a register variable.

Parameters
func_eaany address of the function
indexindex of the register variable (see find_func_regvar())
usernew user-defined name for the register
Returns
Register variable error codes

◆ set_func_regvar_cmt()

idaman int ida_export set_func_regvar_cmt ( ea_t func_ea,
ssize_t index,
const char * cmt )

Set comment for a register variable.

Parameters
func_eaany address of the function
indexindex of the register variable (see find_func_regvar())
cmtnew comment
Returns
Register variable error codes

◆ set_func_regvar_range()

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.

Only the range is changed; to rename a regvar or change its comment use rename_func_regvar()/set_func_regvar_cmt(). The new range must be well-formed (start_ea < end_ea) and must keep the function's register variables sorted by start_ea.

Parameters
func_eaany address of the function
indexindex of the register variable (see find_func_regvar())
rangenew address range for the register variable
Returns
Register variable error codes

◆ del_func_regvar()

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.

Parameters
func_eaany address of the function
ea1,ea2range of addresses within the function where the definition holds
canonname of a general register
Returns
Register variable error codes

◆ get_func_regvar_qty()

idaman size_t ida_export get_func_regvar_qty ( ea_t func_ea)

Get the number of register variables for a function.

Parameters
func_eafunction start address
Returns
number of register variables, or 0

◆ get_func_regvars()

idaman bool ida_export get_func_regvars ( regvars_t * out,
ea_t func_ea )

Get all register variables for a function.

Parameters
outoutput vector of regvar_t
func_eafunction start address
Returns
success

◆ get_func_regvar()

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.

Parameters
outoutput regvar_t (deep copy)
func_eaany address of the function
indexindex of the register variable (see find_func_regvar())
Returns
false if the index is out of range