Module ida_range
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): \link{http://www.bluerwhite.org/btree/}
Global Variables
RANGE_KIND_FUNC
RANGE_KIND_HIDDEN_RANGE
RANGE_KIND_SEGMENT
RANGE_KIND_UNKNOWN
Functions
range_t_print(cb: range_t) ‑> size_t
range_t_print(cb) -> str Helper function. Should not be called directly!
Classes
array_of_rangesets(*args)
: Proxy of C++ qvector< rangeset_t > class.
Methods
add_unique(self, x: rangeset_t) ‑> bool add_unique(self, x) -> bool
x: rangeset_t const &
at(self, _idx: size_t) ‑> rangeset_t const & at(self, _idx) -> rangeset_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< rangeset_t >::const_iterator begin(self) -> rangeset_t
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< rangeset_t >::const_iterator end(self) -> rangeset_t
erase(self, *args) ‑> qvector< rangeset_t >::iterator erase(self, it) -> rangeset_t
it: qvector< rangeset_t >::iterator
erase(self, first, last) -> rangeset_t
first: qvector< rangeset_t >::iterator last: qvector< rangeset_t >::iterator
extract(self) ‑> rangeset_t * extract(self) -> rangeset_t
find(self, *args) ‑> qvector< rangeset_t >::const_iterator find(self, x) -> rangeset_t
x: rangeset_t const &
front(self)
grow(self, *args) ‑> void grow(self, x=rangeset_t())
x: rangeset_t const &
has(self, x: rangeset_t) ‑> bool has(self, x) -> bool
x: rangeset_t const &
inject(self, s: rangeset_t, len: size_t) ‑> void inject(self, s, len)
s: rangeset_t * len: size_t
insert(self, it: rangeset_t, x: rangeset_t) ‑> qvector< rangeset_t >::iterator insert(self, it, x) -> rangeset_t
it: qvector< rangeset_t >::iterator x: rangeset_t const &
pop_back(self) ‑> void pop_back(self)
push_back(self, *args) ‑> rangeset_t & push_back(self, x)
x: rangeset_t const &
push_back(self) -> rangeset_t
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
resize(self, *args) ‑> void resize(self, _newsize, x)
_newsize: size_t x: rangeset_t const &
resize(self, _newsize)
_newsize: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: array_of_rangesets) ‑> void swap(self, r)
r: qvector< rangeset_t > &
truncate(self) ‑> void truncate(self)
range_t(ea1: ea_t = 0, ea2: ea_t = 0)
: Proxy of C++ range_t class.
Descendants
Instance variables
end_ea: ea_t
end_ea
start_ea: ea_t
start_ea
Methods
clear(self) ‑> void clear(self) Set start_ea, end_ea to 0.
compare(self, r: range_t) ‑> int compare(self, r) -> int
r: range_t const &
contains(self, *args) ‑> bool contains(self, ea) -> bool Is every ea in 'r' also in this range_t?
ea: ea_t
contains(self, r) -> bool
r: range_t const &
empty(self) ‑> bool empty(self) -> bool Is the size of the range_t <= 0?
extend(self, ea: ea_t) ‑> void extend(self, ea) Ensure that the range_t includes 'ea'.
ea: (C++: ea_t)
intersect(self, r: range_t) ‑> void intersect(self, r) Assign the range_t to the intersection between the range_t and 'r'.
r: (C++: const range_t &) range_t const &
overlaps(self, r: range_t) ‑> bool overlaps(self, r) -> bool Is there an ea in 'r' that is also in this range_t?
r: (C++: const range_t &) range_t const &
size(self) ‑> asize_t size(self) -> asize_t Get end_ea - start_ea.
rangeset_t(*args)
: Proxy of C++ rangeset_t class.
Methods
add(self, *args) ‑> bool add(self, range) -> bool Add each element of 'aset' to the set.
range: range_t const &
return: false if no elements were added (the set was unchanged) add(self, start, _end) -> bool
start: ea_t _end: ea_t
add(self, aset) -> bool
aset: rangeset_t const &
begin(self, *args) ‑> rangeset_t::iterator begin(self) -> range_t Get an iterator that points to the first element in the set.
cached_range(self) ‑> range_t const * cached_range(self) -> range_t When searching the rangeset, we keep a cached element to help speed up searches.
return: a pointer to the cached element
clear(self) ‑> void clear(self) Delete all elements from the set. See qvector::clear()
contains(self, *args) ‑> bool contains(self, ea) -> bool Is every element in 'aset' contained in an element of this rangeset?. See range_t::contains(range_t)
ea: ea_t
contains(self, aset) -> bool
aset: rangeset_t const &
empty(self) ‑> bool empty(self) -> bool Does the set have zero elements.
end(self, *args) ‑> rangeset_t::iterator end(self) -> range_t Get an iterator that points to the end of the set. (This is NOT the last element)
find_range(self, ea: ea_t) ‑> range_t const * find_range(self, ea) -> range_t Get the element from the set that contains 'ea'.
ea: (C++: ea_t) return: nullptr if there is no such element
getrange(self, idx: int) ‑> range_t const & getrange(self, idx) -> range_t Get the range_t at index 'idx'.
idx: (C++: int)
has_common(self, *args) ‑> bool has_common(self, range) -> bool Does any element of 'aset' overlap with an element in this rangeset?. See range_t::overlaps()
range: range_t const &
has_common(self, aset) -> bool
aset: rangeset_t const &
includes(self, range: range_t) ‑> bool includes(self, range) -> bool Is every ea in 'range' contained in the rangeset?
range: (C++: const range_t &) range_t const &
intersect(self, aset: rangeset_t) ‑> bool intersect(self, aset) -> bool Set the rangeset to its intersection with 'aset'.
aset: (C++: const rangeset_t &) rangeset_t const & return: false if the set was unchanged
is_equal(self, aset: rangeset_t) ‑> bool is_equal(self, aset) -> bool Do this rangeset and 'aset' have identical elements?
aset: (C++: const rangeset_t &) rangeset_t const &
is_subset_of(self, aset: rangeset_t) ‑> bool is_subset_of(self, aset) -> bool Is every element in the rangeset contained in an element of 'aset'?
aset: (C++: const rangeset_t &) rangeset_t const &
lastrange(self) ‑> range_t const & lastrange(self) -> range_t Get the last range_t in the set.
next_addr(self, ea: ea_t) ‑> ea_t next_addr(self, ea) -> ea_t Get the smallest ea_t value greater than 'ea' contained in the rangeset.
ea: (C++: ea_t)
next_range(self, ea: ea_t) ‑> ea_t next_range(self, ea) -> ea_t Get the smallest ea_t value greater than 'ea' that is not in the same range as 'ea'.
ea: (C++: ea_t)
nranges(self) ‑> size_t nranges(self) -> size_t Get the number of range_t elements in the set.
prev_addr(self, ea: ea_t) ‑> ea_t prev_addr(self, ea) -> ea_t Get the largest ea_t value less than 'ea' contained in the rangeset.
ea: (C++: ea_t)
prev_range(self, ea: ea_t) ‑> ea_t prev_range(self, ea) -> ea_t Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'.
ea: (C++: ea_t)
sub(self, *args) ‑> bool sub(self, range) -> bool Subtract each range in 'aset' from the set
range: range_t const &
return: false if nothing was subtracted (the set was unchanged) sub(self, ea) -> bool
ea: ea_t
sub(self, aset) -> bool
aset: rangeset_t const &
swap(self, r: rangeset_t) ‑> void swap(self, r) Set this = 'r' and 'r' = this. See qvector::swap()
r: (C++: rangeset_t &)
rangevec_base_t(*args)
: Proxy of C++ qvector< range_t > class.
Descendants
Methods
add_unique(self, x: range_t) ‑> bool add_unique(self, x) -> bool
x: range_t const &
at(self, _idx: size_t) ‑> range_t const & at(self, _idx) -> range_t
_idx: size_t
back(self)
begin(self, *args) ‑> qvector< range_t >::const_iterator begin(self) -> range_t
capacity(self) ‑> size_t capacity(self) -> size_t
clear(self) ‑> void clear(self)
empty(self) ‑> bool empty(self) -> bool
end(self, *args) ‑> qvector< range_t >::const_iterator end(self) -> range_t
erase(self, *args) ‑> qvector< range_t >::iterator erase(self, it) -> range_t
it: qvector< range_t >::iterator
erase(self, first, last) -> range_t
first: qvector< range_t >::iterator last: qvector< range_t >::iterator
extract(self) ‑> range_t * extract(self) -> range_t
find(self, *args) ‑> qvector< range_t >::const_iterator find(self, x) -> range_t
x: range_t const &
front(self)
grow(self, *args) ‑> void grow(self, x=range_t())
x: range_t const &
has(self, x: range_t) ‑> bool has(self, x) -> bool
x: range_t const &
inject(self, s: range_t, len: size_t) ‑> void inject(self, s, len)
s: range_t * len: size_t
insert(self, it: range_t, x: range_t) ‑> qvector< range_t >::iterator insert(self, it, x) -> range_t
it: qvector< range_t >::iterator x: range_t const &
pop_back(self) ‑> void pop_back(self)
push_back(self, *args) ‑> range_t & push_back(self, x)
x: range_t const &
push_back(self) -> range_t
qclear(self) ‑> void qclear(self)
reserve(self, cnt: size_t) ‑> void reserve(self, cnt)
cnt: size_t
resize(self, *args) ‑> void resize(self, _newsize, x)
_newsize: size_t x: range_t const &
resize(self, _newsize)
_newsize: size_t
size(self) ‑> size_t size(self) -> size_t
swap(self, r: rangevec_base_t) ‑> void swap(self, r)
r: qvector< range_t > &
truncate(self) ‑> void truncate(self)
rangevec_t()
: Proxy of C++ rangevec_t class.
Ancestors (in MRO)
Descendants
Last updated