| IDA SDK

Public Attributes | List of all members
xrefblk_t Struct Reference

## Detailed Description

Structure to enumerate all xrefs.

This structure provides a way to access cross-references from a given address. For example:

xrefblk_t xb;
for ( bool ok=xb.first_from(ea, XREF_FLOW); ok; ok=xb.next_from() )
{
// xb.to - contains the referenced address
}
XREF_FLOW
#define XREF_FLOW
return all references, including ordinary flow xrefs
Definition: xref.hpp:199
xrefblk_t
Structure to enumerate all xrefs.
Definition: xref.hpp:187
xrefblk_t::next_from
bool next_from()
Get next xref from address provided to first_from()
Definition: xref.hpp:224
xrefblk_t::first_from
bool first_from(ea_t _from, int flags=XREF_FLOW)
Get first xref from the given address (store in to)
Definition: xref.hpp:220

or:

xrefblk_t xb;
for ( bool ok=xb.first_to(ea, XREF_FLOW); ok; ok=xb.next_to() )
{
// xb.from - contains the referencing address
}
xrefblk_t::first_to
bool first_to(ea_t _to, int flags=XREF_FLOW)
Get xref to given address (store in from)
Definition: xref.hpp:228
xrefblk_t::next_to
bool next_to()
Get next xref to address provided to first_to()
Definition: xref.hpp:232

First, all code references will be returned, then all data references. If you need only code references, stop calling next() as soon as you get a dref.

If you need only data references, pass XREF_DATA flag to first(). You may not modify the contents of a xrefblk_t structure! It is read only.

## Public Attributes
ea_t | from
| the referencing address - filled by first_to(),next_to()
ea_t | to
| the referenced address - filled by first_from(), next_from()
bool | iscode
| is code reference (cref_t)? otherwise it is a data reference (dref_t)
uchar | type
| type of the last returned reference (cref_t & dref_t)
bool | user
| is user defined xref? otherwise defined by ida
uchar | _flags

## Public Member Functions
Get first/next
  The following functions first return code references, then data references. If you need only code references, you need to check 'iscode' after each call. If you need only data references, use XREF_DATA bit. Parameters
  flags | Xref enumeration flags
  Return values
  1 | ok
  0 | no more xrefs
bool | first_from (ea_t _from, int flags=XREF_FLOW)
| Get first xref from the given address (store in to)
bool | next_from ()
| Get next xref from address provided to first_from()
bool | first_to (ea_t _to, int flags=XREF_FLOW)
| Get xref to given address (store in from)
bool | next_to ()
| Get next xref to address provided to first_to()
bool | next_from (ea_t _from, ea_t _to, int flags)
| Get xref from '_from' that comes after '_to'.
bool | next_to (ea_t _from, ea_t _to, int flags)
| Get xref to '_to' that comes after '_from'.

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

- xref.hpp