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

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 () const
 
bool is_reg () const
 
bool is_stkoff () const
 
bool is_replaced () const
 
bool is_overlapped () const
 
bool is_fake () const
 
bool is_passreg () const
 
bool is_term () 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 ()
 

Public Attributes

int width = 0
 size of the value in bytes More...
 
int varnum = -1
 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 3305 of file hexrays.hpp.

Constructor & Destructor Documentation

◆ chain_t() [1/3]

chain_t::chain_t ( )

Definition at line 3323 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 3324 of file hexrays.hpp.

◆ chain_t() [3/3]

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

Definition at line 3326 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 10861 of file hexrays.hpp.

◆ clear_varnum()

void chain_t::clear_varnum ( )

Definition at line 3357 of file hexrays.hpp.

◆ dstr()

const char * chain_t::dstr ( ) const

Definition at line 10855 of file hexrays.hpp.

◆ endoff()

const voff_t chain_t::endoff ( ) const

Definition at line 3349 of file hexrays.hpp.

◆ get_reg()

mreg_t chain_t::get_reg ( ) const

Definition at line 3343 of file hexrays.hpp.

◆ get_stkoff()

sval_t chain_t::get_stkoff ( ) const

Definition at line 3344 of file hexrays.hpp.

◆ includes()

bool chain_t::includes ( const chain_t r) const

Definition at line 3347 of file hexrays.hpp.

◆ is_fake()

bool chain_t::is_fake ( ) const

Definition at line 3336 of file hexrays.hpp.

◆ is_inited()

bool chain_t::is_inited ( ) const

Definition at line 3331 of file hexrays.hpp.

◆ is_overlapped()

bool chain_t::is_overlapped ( ) const

Definition at line 3335 of file hexrays.hpp.

◆ is_passreg()

bool chain_t::is_passreg ( ) const

Definition at line 3337 of file hexrays.hpp.

◆ is_reg()

bool chain_t::is_reg ( ) const

Definition at line 3332 of file hexrays.hpp.

◆ is_replaced()

bool chain_t::is_replaced ( ) const

Definition at line 3334 of file hexrays.hpp.

◆ is_stkoff()

bool chain_t::is_stkoff ( ) const

Definition at line 3333 of file hexrays.hpp.

◆ is_term()

bool chain_t::is_term ( ) const

Definition at line 3338 of file hexrays.hpp.

◆ key()

const voff_t & chain_t::key ( ) const

Definition at line 3330 of file hexrays.hpp.

◆ operator<()

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

Definition at line 3351 of file hexrays.hpp.

◆ overlap()

bool chain_t::overlap ( const chain_t r) const

Definition at line 3345 of file hexrays.hpp.

◆ print()

void chain_t::print ( qstring *  vout) const

Definition at line 10849 of file hexrays.hpp.

◆ set_inited()

void chain_t::set_inited ( bool  b)

Definition at line 3339 of file hexrays.hpp.

◆ set_overlapped()

void chain_t::set_overlapped ( bool  b)

Definition at line 3341 of file hexrays.hpp.

◆ set_replaced()

void chain_t::set_replaced ( bool  b)

Definition at line 3340 of file hexrays.hpp.

◆ set_term()

void chain_t::set_term ( bool  b)

Definition at line 3342 of file hexrays.hpp.

◆ set_value()

void chain_t::set_value ( const chain_t r)

Definition at line 3328 of file hexrays.hpp.

Member Data Documentation

◆ flags

uchar chain_t::flags

combination Chain properties bits

Definition at line 3313 of file hexrays.hpp.

◆ varnum

int chain_t::varnum = -1

allocated variable index (-1 - not allocated yet)

Definition at line 3312 of file hexrays.hpp.

◆ width

int chain_t::width = 0

size of the value in bytes

Definition at line 3311 of file hexrays.hpp.