| IDA SDK

Public Attributes | List of all members
custloc_desc_t Struct Reference
CM » Argument locations

## 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(idaapi * | copy )(argloc_t *empty_dst, const argloc_t &src)
| Copy src into empty_dst.
void(idaapi * | cleanup )(argloc_t *loc)
| Clear contents of loc before it is modified (may be nullptr)
bool(idaapi * | verify )(const argloc_t &loc, int size, const rangeset_t *gaps, bool part_of_scattered)
| May be nullptr.
int(idaapi * | compare )(const argloc_t &a, const argloc_t &b)
| Lexical comparison of two arglocs.
size_t(idaapi * | print )(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(idaapi * | deref_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(idaapi * | deref_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(idaapi * | deref_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(idaapi * | read_value )(value_union_t *value, const argloc_t &loc, int size, const tinfo_t &tif)
| Read the pointer at 'loc': retrieve value of a simple object. More...
bool(idaapi * | write_value )(const argloc_t &loc, const idc_value_t &idcv, const value_union_t &scalar_value, int size, qstring *errbuf)
| Update value at 'loc'. More...
asize_t(idaapi * | calc_string_length )(const argloc_t &loc, const tinfo_t &string_tif)
| Calc max natural string length at 'loc' in the debugged process memory.
bool(idaapi * | get_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(idaapi * | guess_array_size )(const argloc_t &loc, const tinfo_t &array_tif)
| Retrieve size of array at 'loc' (number of elements)
bool(idaapi * | get_tinfo )(tinfo_t *out, const argloc_t &loc)
| Retrieve type of the object at 'loc'.
int(idaapi * | calc_number_of_children )(const argloc_t &loc, const tinfo_t &tif)
| Calculate the number of children for the given location. More...
size_t(idaapi * | 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'. More...

## Member Data Documentation

## ◆ read_value

bool(idaapi * custloc_desc_t::read_value) (value_union_t *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_union_t.

## ◆ write_value

bool(idaapi * custloc_desc_t::write_value) (const argloc_t &loc, const idc_value_t &idcv, const value_union_t &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'.

## ◆ calc_number_of_children

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)

## ◆ print_ptr_value

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

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

- typeinf.hpp