State-of-the-art binary code analysis tools
range.hpp File Reference

Detailed Description

Contains the definition of range_t.

A range is a non-empty continuous range of addresses (specified by its start and end addresses, the end address is excluded from the range).

Ranges are stored in the Btree part of the IDA database. To learn more about Btrees (Balanced Trees): http://www.bluerwhite.org/btree/

Classes

struct  range_t
 Base class for an range. More...
 
struct  rangevec_t
 Vector of range_t instances. More...
 
class  rangeset_t
 An ordered set of non-overlapping address ranges. More...
 

Functions

idaman size_t ida_export range_t_print (const range_t *, char *buf, size_t bufsize)
 Helper function. Should not be called directly!
 

Macros

#define RANGESET_HELPER_DEFINITIONS(decl)
 Helper functions. Should not be called directly! More...
 

Typedefs

typedef qvector< range_trangevec_base_t
 
typedef qvector< rangeset_tarray_of_rangesets
 Array of rangeset_t objects.
 
typedef qvector< const rangeset_t * > rangeset_crefvec_t
 

Enumerations

enum  range_kind_t { RANGE_KIND_UNKNOWN, RANGE_KIND_FUNC, RANGE_KIND_SEGMENT, RANGE_KIND_HIDDEN_RANGE }
 

Macro Definition Documentation

◆ RANGESET_HELPER_DEFINITIONS

#define RANGESET_HELPER_DEFINITIONS (   decl)
Value:
decl bool ida_export rangeset_t_add(rangeset_t *, const range_t &range);\
decl bool ida_export rangeset_t_sub(rangeset_t *, const range_t &range);\
decl bool ida_export rangeset_t_add2(rangeset_t *, const rangeset_t &aset);\
decl bool ida_export rangeset_t_sub2(rangeset_t *, const rangeset_t &aset);\
decl bool ida_export rangeset_t_has_common(const rangeset_t *, const range_t &range, bool strict);\
decl bool ida_export rangeset_t_has_common2(const rangeset_t *, const rangeset_t &aset);\
decl bool ida_export rangeset_t_contains(const rangeset_t *, const rangeset_t &aset);\
decl size_t ida_export rangeset_t_print(const rangeset_t *, char *buf, size_t bufsize);\
decl bool ida_export rangeset_t_intersect(rangeset_t *, const rangeset_t &aset);\
decl const range_t *ida_export rangeset_t_find_range(const rangeset_t *, ea_t ea);\
decl ea_t ida_export rangeset_t_next_addr(const rangeset_t *, ea_t ea);\
decl ea_t ida_export rangeset_t_prev_addr(const rangeset_t *, ea_t ea);\
decl ea_t ida_export rangeset_t_next_range(const rangeset_t *, ea_t ea);\
decl ea_t ida_export rangeset_t_prev_range(const rangeset_t *, ea_t ea);\
decl rangevec_t::const_iterator ida_export rangeset_t_lower_bound(const rangeset_t *, ea_t ea);\
decl rangevec_t::const_iterator ida_export rangeset_t_upper_bound(const rangeset_t *, ea_t ea);\
decl void ida_export rangeset_t_swap(rangeset_t *, rangeset_t &r);
Base class for an range.
Definition: range.hpp:34
An ordered set of non-overlapping address ranges.
Definition: range.hpp:143

Helper functions. Should not be called directly!

Enumeration Type Documentation

◆ range_kind_t

Enumerator
RANGE_KIND_FUNC 

func_t

RANGE_KIND_SEGMENT 

segment_t

RANGE_KIND_HIDDEN_RANGE 

hidden_range_t