IDA C++ SDK 9.2
Loading...
Searching...
No Matches
mcallinfo_t Class Reference

Information about a call. More...

#include <hexrays.hpp>

Public Member Functions

 mcallinfo_t (ea_t _callee=BADADDR, int _sargs=0)
 HEXRAYS_MEMORY_ALLOCATION_FUNCS () int hexapi lexcompare(const mcallinfo_t &f) const
bool hexapi set_type (const tinfo_t &type)
tinfo_t hexapi get_type () const
bool is_vararg () const
void hexapi print (qstring *vout, int size=-1, int shins_flags=SHINS_SHORT|SHINS_VALNUM) const
const char *hexapi dstr () const

Public Attributes

ea_t callee
 address of the called function, if known
int solid_args
 number of solid args.
int call_spd = 0
 sp value at call insn
int stkargs_top = 0
 first offset past stack arguments
callcnv_t cc = CM_CC_INVALID
 calling convention
mcallargs_t args
 call arguments
mopvec_t retregs
 return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs
tinfo_t return_type
 type of the returned value
argloc_t return_argloc
 location of the returned value
mlist_t return_regs
 list of values returned by the function
mlist_t spoiled
 list of spoiled locations (includes return_regs)
mlist_t pass_regs
 passthrough registers: registers that depend on input values (subset of spoiled)
ivlset_t visible_memory
 what memory is visible to the call?
mlist_t dead_regs
 registers defined by the function but never used.
int flags = 0
 combination of Call properties... bits
funcrole_t role = ROLE_UNK
 function role
type_attrs_t fti_attrs
 extended function attributes

Detailed Description

Information about a call.

Constructor & Destructor Documentation

◆ mcallinfo_t()

mcallinfo_t::mcallinfo_t ( ea_t _callee = BADADDR,
int _sargs = 0 )
inline

Member Function Documentation

◆ HEXRAYS_MEMORY_ALLOCATION_FUNCS()

mcallinfo_t::HEXRAYS_MEMORY_ALLOCATION_FUNCS ( ) const &

◆ set_type()

bool mcallinfo_t::set_type ( const tinfo_t & type)
inline

◆ get_type()

tinfo_t mcallinfo_t::get_type ( ) const
inline

◆ is_vararg()

bool mcallinfo_t::is_vararg ( ) const
inline

◆ print()

void mcallinfo_t::print ( qstring * vout,
int size = -1,
int shins_flags = SHINS_SHORT|SHINS_VALNUM ) const
inline

◆ dstr()

const char * mcallinfo_t::dstr ( ) const
inline

Member Data Documentation

◆ callee

ea_t mcallinfo_t::callee

address of the called function, if known

◆ solid_args

int mcallinfo_t::solid_args

number of solid args.

there may be variadic args in addtion

◆ call_spd

int mcallinfo_t::call_spd = 0

sp value at call insn

◆ stkargs_top

int mcallinfo_t::stkargs_top = 0

first offset past stack arguments

◆ cc

callcnv_t mcallinfo_t::cc = CM_CC_INVALID

calling convention

◆ args

mcallargs_t mcallinfo_t::args

call arguments

◆ retregs

mopvec_t mcallinfo_t::retregs

return register(s) (e.g., AX, AX:DX, etc.) this vector is built from return_regs

◆ return_type

tinfo_t mcallinfo_t::return_type

type of the returned value

◆ return_argloc

argloc_t mcallinfo_t::return_argloc

location of the returned value

◆ return_regs

mlist_t mcallinfo_t::return_regs

list of values returned by the function

◆ spoiled

mlist_t mcallinfo_t::spoiled

list of spoiled locations (includes return_regs)

◆ pass_regs

mlist_t mcallinfo_t::pass_regs

passthrough registers: registers that depend on input values (subset of spoiled)

◆ visible_memory

ivlset_t mcallinfo_t::visible_memory

what memory is visible to the call?

◆ dead_regs

mlist_t mcallinfo_t::dead_regs

registers defined by the function but never used.

upon propagation we do the following:

  • dead_regs += return_regs
  • retregs.clear() since the call is propagated

◆ flags

int mcallinfo_t::flags = 0

combination of Call properties... bits

◆ role

funcrole_t mcallinfo_t::role = ROLE_UNK

function role

◆ fti_attrs

type_attrs_t mcallinfo_t::fti_attrs

extended function attributes


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