Latest available version: IDA and decompilers v8.3.230608 see all releases
Hex-Rays logo State-of-the-art binary code analysis tools
email icon

ud (use->def) and du (def->use) chain. More...

#include <hexrays.hpp>

Inheritance diagram for chain_t:

Public Member Functions

 chain_t (mopt_t t, sval_t off, int w=1, int v=-1)
 
 chain_t (const voff_t &_k, int w=1)
 
void set_value (const chain_t &r)
 
const voff_tkey () const
 
bool is_inited (void) const
 
bool is_reg (void) const
 
bool is_stkoff (void) const
 
bool is_replaced (void) const
 
bool is_overlapped (void) const
 
bool is_fake (void) const
 
bool is_passreg (void) const
 
bool is_term (void) const
 
void set_inited (bool b)
 
void set_replaced (bool b)
 
void set_overlapped (bool b)
 
void set_term (bool b)
 
mreg_t get_reg () const
 
sval_t get_stkoff () const
 
bool overlap (const chain_t &r) const
 
bool includes (const chain_t &r) const
 
const voff_t endoff () const
 
bool operator< (const chain_t &r) const
 
void print (qstring *vout) const
 
const char * dstr () const
 
void append_list (const mba_t *mba, mlist_t *list) const
 Append the contents of the chain to the specified list of locations. More...
 
void clear_varnum (void)
 

Public Attributes

int width
 size of the value in bytes More...
 
int varnum
 allocated variable index (-1 - not allocated yet) More...
 
uchar flags
 combination Chain properties bits More...
 

Detailed Description

ud (use->def) and du (def->use) chain.

We store in chains only the block numbers, not individual instructions See https://en.wikipedia.org/wiki/Use-define_chain

Examples
hexrays_sample12.cpp, and hexrays_sample18.cpp.

Definition at line 3299 of file hexrays.hpp.

Constructor & Destructor Documentation

◆ chain_t() [1/3]

chain_t::chain_t ( )

Definition at line 3317 of file hexrays.hpp.

◆ chain_t() [2/3]

chain_t::chain_t ( mopt_t  t,
sval_t  off,
int  w = 1,
int  v = -1 
)

Definition at line 3318 of file hexrays.hpp.

◆ chain_t() [3/3]

chain_t::chain_t ( const voff_t _k,
int  w = 1 
)

Definition at line 3320 of file hexrays.hpp.

Member Function Documentation

◆ append_list()

void chain_t::append_list ( const mba_t mba,
mlist_t list 
) const

Append the contents of the chain to the specified list of locations.

Definition at line 10808 of file hexrays.hpp.

◆ clear_varnum()

void chain_t::clear_varnum ( void  )

Definition at line 3351 of file hexrays.hpp.

◆ dstr()

const char * chain_t::dstr ( void  ) const

Definition at line 10802 of file hexrays.hpp.

◆ endoff()

const voff_t chain_t::endoff ( ) const

Definition at line 3343 of file hexrays.hpp.

◆ get_reg()

mreg_t chain_t::get_reg ( ) const

Definition at line 3337 of file hexrays.hpp.

◆ get_stkoff()

sval_t chain_t::get_stkoff ( void  ) const

Definition at line 3338 of file hexrays.hpp.

◆ includes()

bool chain_t::includes ( const chain_t r) const

Definition at line 3341 of file hexrays.hpp.

◆ is_fake()

bool chain_t::is_fake ( void  ) const

Definition at line 3330 of file hexrays.hpp.

◆ is_inited()

bool chain_t::is_inited ( void  ) const

Definition at line 3325 of file hexrays.hpp.

◆ is_overlapped()

bool chain_t::is_overlapped ( void  ) const

Definition at line 3329 of file hexrays.hpp.

◆ is_passreg()

bool chain_t::is_passreg ( void  ) const

Definition at line 3331 of file hexrays.hpp.

◆ is_reg()

bool chain_t::is_reg ( void  ) const

Definition at line 3326 of file hexrays.hpp.

◆ is_replaced()

bool chain_t::is_replaced ( void  ) const

Definition at line 3328 of file hexrays.hpp.

◆ is_stkoff()

bool chain_t::is_stkoff ( void  ) const

Definition at line 3327 of file hexrays.hpp.

◆ is_term()

bool chain_t::is_term ( void  ) const

Definition at line 3332 of file hexrays.hpp.

◆ key()

const voff_t & chain_t::key ( ) const

Definition at line 3324 of file hexrays.hpp.

◆ operator<()

bool chain_t::operator< ( const chain_t r) const

Definition at line 3345 of file hexrays.hpp.

◆ overlap()

bool chain_t::overlap ( const chain_t r) const

Definition at line 3339 of file hexrays.hpp.

◆ print()

void chain_t::print ( qstring *  vout) const

Definition at line 10796 of file hexrays.hpp.

◆ set_inited()

void chain_t::set_inited ( bool  b)

Definition at line 3333 of file hexrays.hpp.

◆ set_overlapped()

void chain_t::set_overlapped ( bool  b)

Definition at line 3335 of file hexrays.hpp.

◆ set_replaced()

void chain_t::set_replaced ( bool  b)

Definition at line 3334 of file hexrays.hpp.

◆ set_term()

void chain_t::set_term ( bool  b)

Definition at line 3336 of file hexrays.hpp.

◆ set_value()

void chain_t::set_value ( const chain_t r)

Definition at line 3322 of file hexrays.hpp.

Member Data Documentation

◆ flags

uchar chain_t::flags

combination Chain properties bits

Definition at line 3307 of file hexrays.hpp.

◆ varnum

int chain_t::varnum

allocated variable index (-1 - not allocated yet)

Definition at line 3306 of file hexrays.hpp.

◆ width

int chain_t::width

size of the value in bytes

Definition at line 3305 of file hexrays.hpp.