class AddressRanges
Defined at line 21 of file ../../src/developer/debug/zxdb/common/address_ranges.h
A set of address ranges. It exposes a read-only vector-like interface along with some helper
functions to test for inclusion.
The ranges in the structure are always stored in canonical form: sorted by the begin address,
non-overlapping, no empty ranges.
Public Methods
void AddressRanges (Format , RangeVector ranges)
Creates from a set of ranges.
Defined at line 13 of file ../../src/developer/debug/zxdb/common/address_ranges.cc
std::optional<AddressRange> GetRangeContaining (uint64_t addr)
Returns the individual subrange that includes the given address if one exists.
Defined at line 24 of file ../../src/developer/debug/zxdb/common/address_ranges.cc
void AddressRanges ()
Creates an empty set of ranges.
Defined at line 33 of file ../../src/developer/debug/zxdb/common/address_ranges.h
void AddressRanges (const AddressRanges & other)
Defined at line 35 of file ../../src/developer/debug/zxdb/common/address_ranges.h
void AddressRanges (AddressRanges && other)
Defined at line 36 of file ../../src/developer/debug/zxdb/common/address_ranges.h
bool InRange (uint64_t addr)
Returns true if the address is included in any of the ranges.
Defined at line 37 of file ../../src/developer/debug/zxdb/common/address_ranges.cc
void AddressRanges (const AddressRange & r)
Creates a single-range set. If the range is empty it will not be added.
Defined at line 39 of file ../../src/developer/debug/zxdb/common/address_ranges.h
AddressRange GetExtent ()
Returns the range covering all sub ranges. If there are no sub-ranges, the result will be an
empty range.
Defined at line 39 of file ../../src/developer/debug/zxdb/common/address_ranges.cc
std::string ToString ()
Returns a string representing this set of ranges for debugging purposes.
Defined at line 45 of file ../../src/developer/debug/zxdb/common/address_ranges.cc
AddressRanges & operator= (const AddressRanges & other)
Defined at line 47 of file ../../src/developer/debug/zxdb/common/address_ranges.h
AddressRanges & operator= (AddressRanges && other)
Defined at line 51 of file ../../src/developer/debug/zxdb/common/address_ranges.h
bool operator== (const AddressRanges & other)
Defined at line 56 of file ../../src/developer/debug/zxdb/common/address_ranges.h
bool operator!= (const AddressRanges & other)
Defined at line 57 of file ../../src/developer/debug/zxdb/common/address_ranges.h
bool IsCanonical (const AddressRanges::RangeVector & ranges)
Returns true if the given vector is in canonical form.
Defined at line 57 of file ../../src/developer/debug/zxdb/common/address_ranges.cc
size_t size ()
Defined at line 59 of file ../../src/developer/debug/zxdb/common/address_ranges.h
bool empty ()
Defined at line 60 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const AddressRange & operator[] (size_t i)
Defined at line 62 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const AddressRange & front ()
Defined at line 64 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const AddressRange & back ()
Defined at line 65 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const_iterator begin ()
Defined at line 67 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const_iterator cbegin ()
Defined at line 68 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const_iterator end ()
Defined at line 69 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const_iterator cend ()
Defined at line 70 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const_reverse_iterator rbegin ()
Defined at line 71 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const_reverse_iterator crbegin ()
Defined at line 72 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const_reverse_iterator rend ()
Defined at line 73 of file ../../src/developer/debug/zxdb/common/address_ranges.h
const_reverse_iterator crend ()
Defined at line 74 of file ../../src/developer/debug/zxdb/common/address_ranges.h
Enumerations
enum Format
| Name | Value |
|---|---|
| kCanonical | 0 |
| kNonCanonical | 1 |
Indicates the type of input. Canonical input is a set of sorted, non-overlapping ranges.
Non-canonical input can be anything. Non-canonical input will be sorted and un-overlapped.
Defined at line 30 of file ../../src/developer/debug/zxdb/common/address_ranges.h