IDA C++ SDK 9.4
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_t & src
int size
int const rangeset_t * gaps
int const rangeset_t bool part_of_scattered
const argloc_t & b
size_t bufsize
size_t const argloc_t & loc
size_t const argloc_t asize_t size
size_t const argloc_t asize_t int praloc_flags
tinfo_t * tif
tinfo_t const argloc_t & strloc
tinfo_t const argloc_t const tinfo_t & struct_tif
tinfo_t const argloc_t const tinfo_t asize_t off
tinfo_t const argloc_t const tinfo_t asize_t const qstring & name
tinfo_t const argloc_t & arrloc
tinfo_t const argloc_t const tinfo_t & array_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_t & ptrloc
const argloc_t & loc
const argloc_t int size
const argloc_t int const tinfo_t & tif
const idc_value_t & idcv
const idc_value_t const value_union_t & scalar_value
const idc_value_t const value_union_t int size
const idc_value_t const value_union_t int qstring * errbuf
const tinfo_t & string_tif
tinfo_t * elem_tif
tinfo_t const argloc_t & loc
tinfo_t const argloc_t const tinfo_t & string_tif
tinfo_t const argloc_t const tinfo_t size_t len
const tinfo_t & array_tif
const tinfo_t & tif
size_t bool * is_valid_ptr
size_t bool const argloc_t & loc
size_t bool const argloc_t const tinfo_t & tif

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: