IDA C++ SDK 9.2
Loading...
Searching...
No Matches
lvar_locator_t Struct Reference

Local variable locator. More...

#include <hexrays.hpp>

Inheritance diagram for lvar_locator_t:
lvar_t

Public Member Functions

 lvar_locator_t ()
 lvar_locator_t (const vdloc_t &loc, ea_t ea)
sval_t get_stkoff () const
 Get offset of the varialbe in the stack frame.
bool is_reg1 () const
 Is variable located on one register?
bool is_reg2 () const
 Is variable located on two registers?
bool is_reg_var () const
 Is variable located on register(s)?
bool is_stk_var () const
 Is variable located on the stack?
bool is_scattered () const
 Is variable scattered?
mreg_t get_reg1 () const
 Get the register number of the variable.
mreg_t get_reg2 () const
 Get the number of the second register (works only for ALOC_REG2 lvars)
const scattered_aloc_tget_scattered () const
 Get information about scattered variable.
scattered_aloc_tget_scattered ()
 DECLARE_COMPARISONS (lvar_locator_t)
 HEXRAYS_MEMORY_ALLOCATION_FUNCS () const char *hexapi dstr() const

Public Attributes

vdloc_t location
 Variable location.
ea_t defea = BADADDR
 Definition address.

Detailed Description

Local variable locator.

Local variables are located using definition ea and location. Each variable must have a unique locator, this is how we tell them apart.

Constructor & Destructor Documentation

◆ lvar_locator_t() [1/2]

lvar_locator_t::lvar_locator_t ( )
inline

◆ lvar_locator_t() [2/2]

lvar_locator_t::lvar_locator_t ( const vdloc_t & loc,
ea_t ea )
inline

Member Function Documentation

◆ get_stkoff()

sval_t lvar_locator_t::get_stkoff ( ) const
inline

Get offset of the varialbe in the stack frame.

Returns
a non-negative value for stack variables. The value is an offset from the bottom of the stack frame in terms of vd-offsets. negative values mean error (not a stack variable)

◆ is_reg1()

bool lvar_locator_t::is_reg1 ( ) const
inline

Is variable located on one register?

◆ is_reg2()

bool lvar_locator_t::is_reg2 ( ) const
inline

Is variable located on two registers?

◆ is_reg_var()

bool lvar_locator_t::is_reg_var ( ) const
inline

Is variable located on register(s)?

◆ is_stk_var()

bool lvar_locator_t::is_stk_var ( ) const
inline

Is variable located on the stack?

◆ is_scattered()

bool lvar_locator_t::is_scattered ( ) const
inline

Is variable scattered?

◆ get_reg1()

mreg_t lvar_locator_t::get_reg1 ( ) const
inline

Get the register number of the variable.

◆ get_reg2()

mreg_t lvar_locator_t::get_reg2 ( ) const
inline

Get the number of the second register (works only for ALOC_REG2 lvars)

◆ get_scattered() [1/2]

const scattered_aloc_t & lvar_locator_t::get_scattered ( ) const
inline

Get information about scattered variable.

◆ get_scattered() [2/2]

scattered_aloc_t & lvar_locator_t::get_scattered ( )
inline

◆ DECLARE_COMPARISONS()

lvar_locator_t::DECLARE_COMPARISONS ( lvar_locator_t )

◆ HEXRAYS_MEMORY_ALLOCATION_FUNCS()

lvar_locator_t::HEXRAYS_MEMORY_ALLOCATION_FUNCS ( ) const

Member Data Documentation

◆ location

vdloc_t lvar_locator_t::location

Variable location.

◆ defea

ea_t lvar_locator_t::defea = BADADDR

Definition address.

Usually, this is the address of the instruction that initializes the variable. In some cases it can be a fictional address.


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