IDA SDK
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:

for ( bool ok=xb.first_from(ea, XREF_FLOW); ok; ok=xb.next_from() )
{
// xb.to - contains the referenced address
}
#define XREF_FLOW
return all references, including ordinary flow xrefs
Definition: xref.hpp:199
Structure to enumerate all xrefs.
Definition: xref.hpp:187
bool next_from()
Get next xref from address provided to first_from()
Definition: xref.hpp:224
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:

for ( bool ok=xb.first_to(ea, XREF_FLOW); ok; ok=xb.next_to() )
{
// xb.from - contains the referencing address
}
bool first_to(ea_t _to, int flags=XREF_FLOW)
Get xref to given address (store in from)
Definition: xref.hpp:228
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
flagsXref enumeration flags
Return values
1ok
0no 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: