Latest available version: IDA and decompilers v8.4.240320sp1 see all releases
Hex-Rays logo State-of-the-art binary code analysis tools
email icon
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 (const vdloc_t &loc, ea_t ea)
 
sval_t get_stkoff () const
 Get offset of the varialbe in the stack frame. More...
 
bool is_reg1 () const
 Is variable located on one register? More...
 
bool is_reg2 () const
 Is variable located on two registers? More...
 
bool is_reg_var () const
 Is variable located on register(s)? More...
 
bool is_stk_var () const
 Is variable located on the stack? More...
 
bool is_scattered () const
 Is variable scattered? More...
 
mreg_t get_reg1 () const
 Get the register number of the variable. More...
 
mreg_t get_reg2 () const
 Get the number of the second register (works only for ALOC_REG2 lvars) More...
 
const scattered_aloc_t & get_scattered () const
 Get information about scattered variable. More...
 
scattered_aloc_t & get_scattered ()
 
 DECLARE_COMPARISONS (lvar_locator_t)
 
const char * dstr () const
 

Public Attributes

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

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.

Definition at line 1120 of file hexrays.hpp.

Constructor & Destructor Documentation

◆ lvar_locator_t() [1/2]

lvar_locator_t::lvar_locator_t ( )

Definition at line 1127 of file hexrays.hpp.

◆ lvar_locator_t() [2/2]

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

Definition at line 1128 of file hexrays.hpp.

Member Function Documentation

◆ dstr()

const char * lvar_locator_t::dstr ( ) const

Definition at line 10024 of file hexrays.hpp.

◆ get_reg1()

mreg_t lvar_locator_t::get_reg1 ( ) const

Get the register number of the variable.

Definition at line 1149 of file hexrays.hpp.

◆ get_reg2()

mreg_t lvar_locator_t::get_reg2 ( ) const

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

Definition at line 1151 of file hexrays.hpp.

◆ get_scattered() [1/2]

scattered_aloc_t & lvar_locator_t::get_scattered ( )

Definition at line 1154 of file hexrays.hpp.

◆ get_scattered() [2/2]

const scattered_aloc_t & lvar_locator_t::get_scattered ( ) const

Get information about scattered variable.

Definition at line 1153 of file hexrays.hpp.

◆ get_stkoff()

sval_t lvar_locator_t::get_stkoff ( ) const

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)

Definition at line 1134 of file hexrays.hpp.

◆ is_reg1()

bool lvar_locator_t::is_reg1 ( ) const

Is variable located on one register?

Definition at line 1139 of file hexrays.hpp.

◆ is_reg2()

bool lvar_locator_t::is_reg2 ( ) const

Is variable located on two registers?

Definition at line 1141 of file hexrays.hpp.

◆ is_reg_var()

bool lvar_locator_t::is_reg_var ( ) const

Is variable located on register(s)?

Definition at line 1143 of file hexrays.hpp.

◆ is_scattered()

bool lvar_locator_t::is_scattered ( ) const

Is variable scattered?

Definition at line 1147 of file hexrays.hpp.

◆ is_stk_var()

bool lvar_locator_t::is_stk_var ( ) const

Is variable located on the stack?

Definition at line 1145 of file hexrays.hpp.

Member Data Documentation

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

Examples
hexrays_sample4.cpp.

Definition at line 1123 of file hexrays.hpp.

◆ location

vdloc_t lvar_locator_t::location

Variable location.

Examples
hexrays_sample4.cpp.

Definition at line 1122 of file hexrays.hpp.

Referenced by lvar_t::has_common().