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