IDA C++ SDK 9.2
Loading...
Searching...
No Matches
custloc_desc_t Struct Reference

Description of a custom argloc. More...

#include <typeinf.hpp>

Public Member Functions

 void (idaapi *copy)(argloc_t *empty_dst
 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
 May be nullptr.
 int (idaapi *compare)(const argloc_t &a
 Lexical comparison of two arglocs.
 size_t (idaapi *print)(char *buf
 Get textual description of the location (not the value at the location!)
 bool (idaapi *deref_field)(argloc_t *out
 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
 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
 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
 Read the pointer at 'loc': retrieve value of a simple object.
 bool (idaapi *write_value)(const argloc_t &loc
 Update value at 'loc'.
 asize_t (idaapi *calc_string_length)(const argloc_t &loc
 Calc max natural string length at 'loc' in the debugged process memory.
 bool (idaapi *get_string)(qstring *out
 Retrieve string at 'loc' from the debugged process memory, returns quoted string value.
 asize_t (idaapi *guess_array_size)(const argloc_t &loc
 Retrieve size of array at 'loc' (number of elements)
 bool (idaapi *get_tinfo)(tinfo_t *out
 Retrieve type of the object at 'loc'.
 int (idaapi *calc_number_of_children)(const argloc_t &loc
 Calculate the number of children for the given location.
 size_t (idaapi *print_ptr_value)(char *buf
 Get string containing a printable representation of the pointer at 'loc'.

Public Attributes

size_t cbsize
 size of this structure
const char * name
 name of the custom argloc type. must be unique
const argloc_tsrc
int size
int const rangeset_t * gaps
int const rangeset_t bool part_of_scattered
const argloc_tb
size_t bufsize
size_t const argloc_tloc
size_t const argloc_t asize_t size
size_t const argloc_t asize_t int praloc_flags
tinfo_ttif
tinfo_t const argloc_tstrloc
tinfo_t const argloc_t const tinfo_tstruct_tif
tinfo_t const argloc_t const tinfo_t asize_t off
tinfo_t const argloc_t const tinfo_t asize_t const qstringname
tinfo_t const argloc_tarrloc
tinfo_t const argloc_t const tinfo_tarray_tif
tinfo_t const argloc_t const tinfo_t asize_t n
tinfo_t const argloc_t const tinfo_t asize_t asize_t elsize
tinfo_t const argloc_tptrloc
const argloc_tloc
const argloc_t int size
const argloc_t int const tinfo_ttif
const idc_value_tidcv
const idc_value_t const value_union_tscalar_value
const idc_value_t const value_union_t int size
const idc_value_t const value_union_t int qstringerrbuf
const tinfo_tstring_tif
tinfo_telem_tif
tinfo_t const argloc_tloc
tinfo_t const argloc_t const tinfo_tstring_tif
tinfo_t const argloc_t const tinfo_t size_t len
const tinfo_tarray_tif
const tinfo_ttif
size_t boolis_valid_ptr
size_t bool const argloc_tloc
size_t bool const argloc_t const tinfo_ttif

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.

Member Function Documentation

◆ void() [1/2]

custloc_desc_t::void ( idaapi * copy)

Copy src into empty_dst.

◆ void() [2/2]

custloc_desc_t::void ( idaapi * cleanup)

Clear contents of loc before it is modified (may be nullptr)

◆ bool() [1/8]

custloc_desc_t::bool ( idaapi * verify) const &

May be nullptr.

◆ int() [1/2]

custloc_desc_t::int ( idaapi * compare) const &

Lexical comparison of two arglocs.

◆ size_t() [1/2]

custloc_desc_t::size_t ( idaapi * print)

Get textual description of the location (not the value at the location!)

◆ bool() [2/8]

custloc_desc_t::bool ( idaapi * deref_field)

Dereference the struct/union pointed by 'strloc': take member at offset 'off' (or use the field name), improve member 'tif' if necessary.

◆ bool() [3/8]

custloc_desc_t::bool ( idaapi * deref_array)

Dereference the array pointed by 'arrloc': take member number 'n' (element size is 'elsize'), improve member 'tif' if necessary.

◆ bool() [4/8]

custloc_desc_t::bool ( idaapi * deref_ptr)

Dereference the pointer at 'loc': retrieve location of the pointed object, improve 'tif' of the pointed object if necessary.

◆ bool() [5/8]

custloc_desc_t::bool ( idaapi * read_value)

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

the object value must fit value_union_t.

◆ bool() [6/8]

custloc_desc_t::bool ( idaapi * write_value) const &

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

◆ asize_t() [1/2]

custloc_desc_t::asize_t ( idaapi * calc_string_length) const &

Calc max natural string length at 'loc' in the debugged process memory.

◆ bool() [7/8]

custloc_desc_t::bool ( idaapi * get_string)

Retrieve string at 'loc' from the debugged process memory, returns quoted string value.

◆ asize_t() [2/2]

custloc_desc_t::asize_t ( idaapi * guess_array_size) const &

Retrieve size of array at 'loc' (number of elements)

◆ bool() [8/8]

custloc_desc_t::bool ( idaapi * get_tinfo)

Retrieve type of the object at 'loc'.

◆ int() [2/2]

custloc_desc_t::int ( idaapi * calc_number_of_children) const &

Calculate the number of children for the given location.

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

◆ size_t() [2/2]

custloc_desc_t::size_t ( idaapi * print_ptr_value)

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

Returns the number of characters printed. May be nullptr.

Member Data Documentation

◆ cbsize

size_t custloc_desc_t::cbsize

size of this structure

◆ name [1/2]

const char* custloc_desc_t::name

name of the custom argloc type. must be unique

◆ src

const argloc_t& custloc_desc_t::src

◆ size [1/4]

int custloc_desc_t::size

◆ gaps

int const rangeset_t* custloc_desc_t::gaps

◆ part_of_scattered

int const rangeset_t bool custloc_desc_t::part_of_scattered

◆ b

const argloc_t& custloc_desc_t::b

◆ bufsize

size_t custloc_desc_t::bufsize

◆ loc [1/4]

const argloc_t & custloc_desc_t::loc

◆ size [2/4]

size_t const argloc_t asize_t custloc_desc_t::size

◆ praloc_flags

size_t const argloc_t asize_t int custloc_desc_t::praloc_flags

◆ tif [1/4]

tinfo_t * custloc_desc_t::tif

◆ strloc

tinfo_t const argloc_t& custloc_desc_t::strloc

◆ struct_tif

tinfo_t const argloc_t const tinfo_t& custloc_desc_t::struct_tif

◆ off

tinfo_t const argloc_t const tinfo_t asize_t custloc_desc_t::off

◆ name [2/2]

tinfo_t const argloc_t const tinfo_t asize_t const qstring& custloc_desc_t::name

◆ arrloc

tinfo_t const argloc_t& custloc_desc_t::arrloc

◆ array_tif [1/2]

tinfo_t const argloc_t const tinfo_t& custloc_desc_t::array_tif

◆ n

tinfo_t const argloc_t const tinfo_t asize_t custloc_desc_t::n

◆ elsize

tinfo_t const argloc_t const tinfo_t asize_t asize_t custloc_desc_t::elsize

◆ ptrloc

tinfo_t const argloc_t& custloc_desc_t::ptrloc

◆ loc [2/4]

const argloc_t& custloc_desc_t::loc

◆ size [3/4]

const argloc_t int custloc_desc_t::size

◆ tif [2/4]

const argloc_t int const tinfo_t& custloc_desc_t::tif

◆ idcv

const idc_value_t& custloc_desc_t::idcv

◆ scalar_value

const idc_value_t const value_union_t& custloc_desc_t::scalar_value

◆ size [4/4]

const idc_value_t const value_union_t int custloc_desc_t::size

◆ errbuf

const idc_value_t const value_union_t int qstring* custloc_desc_t::errbuf

◆ string_tif [1/2]

const tinfo_t& custloc_desc_t::string_tif

◆ elem_tif

tinfo_t* custloc_desc_t::elem_tif

◆ loc [3/4]

tinfo_t const argloc_t& custloc_desc_t::loc

◆ string_tif [2/2]

tinfo_t const argloc_t const tinfo_t& custloc_desc_t::string_tif

◆ len

tinfo_t const argloc_t const tinfo_t size_t custloc_desc_t::len

◆ array_tif [2/2]

const tinfo_t& custloc_desc_t::array_tif

◆ tif [3/4]

const tinfo_t& custloc_desc_t::tif

◆ is_valid_ptr

size_t bool* custloc_desc_t::is_valid_ptr

◆ loc [4/4]

size_t bool const argloc_t& custloc_desc_t::loc

◆ tif [4/4]

size_t bool const argloc_t const tinfo_t& custloc_desc_t::tif

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