IDA SDK
Public Attributes | List of all members
custloc_desc_t Struct Reference

Detailed Description

Description of a custom argloc.

Custom arglocs can be added by plugins in order to describe the locations unsupported by the ida kernel.

Public Attributes

size_t cbsize
 size of this structure
 
const char * name
 name of the custom argloc type. must be unique
 
void(idaapicopy )(argloc_t *empty_dst, const argloc_t &src)
 Copy src into empty_dst.
 
void(idaapicleanup )(argloc_t *loc)
 Clear contents of loc before it is modified (may be NULL)
 
bool(idaapiverify )(const argloc_t &loc, int size, const rangeset_t *gaps, bool part_of_scattered)
 May be NULL.
 
int(idaapicompare )(const argloc_t &a, const argloc_t &b)
 Lexical comparison of two arglocs.
 
size_t(idaapiprint )(char *buf, size_t bufsize, const argloc_t &loc, asize_t size, int praloc_flags)
 Get textual description of the location (not the value at the location!)
 
bool(idaapideref_field )(argloc_t *out, tinfo_t *tif, const argloc_t &strloc, const tinfo_t &struct_tif, asize_t off, const qstring &name)
 Dereference the struct/union pointed by 'strloc': take member at offset 'off' (or use the field name), improve member 'tif' if necessary.
 
bool(idaapideref_array )(argloc_t *out, tinfo_t *tif, const argloc_t &arrloc, const tinfo_t &array_tif, asize_t n, asize_t elsize)
 Dereference the array pointed by 'arrloc': take member number 'n' (element size is 'elsize'), improve member 'tif' if necessary.
 
bool(idaapideref_ptr )(argloc_t *out, tinfo_t *tif, const argloc_t &ptrloc)
 Dereference the pointer at 'loc': retrieve location of the pointed object, improve 'tif' of the pointed object if necessary.
 
bool(idaapiread_value )(value_u *value, const argloc_t &loc, int size, const tinfo_t &tif)
 Read the pointer at 'loc': retrieve value of a simple object. More...
 
bool(idaapiwrite_value )(const argloc_t &loc, const idc_value_t &idcv, const value_u &scalar_value, int size, qstring *errbuf)
 Update value at 'loc'. More...
 
asize_t(idaapicalc_string_length )(const argloc_t &loc, const tinfo_t &string_tif)
 Calc max natural string length at 'loc' in the debugged process memory.
 
bool(idaapiget_string )(qstring *out, tinfo_t *elem_tif, const argloc_t &loc, const tinfo_t &string_tif, size_t len)
 Retrieve string at 'loc' from the debugged process memory, returns quoted string value.
 
asize_t(idaapiguess_array_size )(const argloc_t &loc, const tinfo_t &array_tif)
 Retrieve size of array at 'loc' (number of elements)
 
bool(idaapiget_tinfo )(tinfo_t *out, const argloc_t &loc)
 Retrieve type of the object at 'loc'.
 
int(idaapicalc_number_of_children )(const argloc_t &loc, const tinfo_t &tif)
 Calculate the number of children for the given location. More...
 
size_t(idaapiprint_ptr_value )(char *buf, size_t bufsize, bool *is_valid_ptr, const argloc_t &loc, const tinfo_t &tif)
 Get string containing a printable representation of the pointer at 'loc'. More...
 

Member Data Documentation

bool(idaapi * custloc_desc_t::read_value) (value_u *value, const argloc_t &loc, int size, const tinfo_t &tif)

Read the pointer at 'loc': retrieve value of a simple object.

the object value must fit value_u.

bool(idaapi * custloc_desc_t::write_value) (const argloc_t &loc, const idc_value_t &idcv, const value_u &scalar_value, int size, qstring *errbuf)

Update value at 'loc'.

if idcv is VT_LONG/VT_INT64/VT_FLOAT, the value in native format is copied to 'scalar_value' for your convenience. otherwise please use 'idcv' and not 'scalar_value'.

int(idaapi * custloc_desc_t::calc_number_of_children) (const argloc_t &loc, const tinfo_t &tif)

Calculate the number of children for the given location.

(arrays, structs, ptrs may have children and therefore be expanded)

size_t(idaapi * custloc_desc_t::print_ptr_value) (char *buf, size_t bufsize, bool *is_valid_ptr, const argloc_t &loc, const tinfo_t &tif)

Get string containing a printable representation of the pointer at 'loc'.

Returns the number of characters printed. May be NULL.


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