class AddressRanges

Declaration

class AddressRanges { /* full declaration omitted */ };

Description

The AddressRanges class helps normalize address range collections. This class keeps a sorted vector of AddressRange objects and can perform insertions and searches efficiently. The address ranges are always sorted and never contain any invalid or empty address ranges. This allows us to emit address ranges into the GSYM file efficiently. Intersecting address ranges are combined during insertion so that we can emit the most compact representation for address ranges when writing to disk.

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:83

Member Variables

protected llvm::gsym::AddressRanges::Collection Ranges

Method Overview

  • public Collection::const_iterator begin() const
  • public void clear()
  • public bool contains(uint64_t Addr) const
  • public bool contains(llvm::gsym::AddressRange Range) const
  • public void decode(llvm::DataExtractor & Data, uint64_t BaseAddr, uint64_t & Offset)
  • public bool empty() const
  • public void encode(llvm::gsym::FileWriter & O, uint64_t BaseAddr) const
  • public Collection::const_iterator end() const
  • public void insert(llvm::gsym::AddressRange Range)
  • public size_t size() const
  • public static uint64_t skip(llvm::DataExtractor & Data, uint64_t & Offset)

Methods

Collection::const_iterator begin() const

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:101

void clear()

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:88

bool contains(uint64_t Addr) const

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:90

Parameters

uint64_t Addr

bool contains(
    llvm::gsym::AddressRange Range) const

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:91

Parameters

llvm::gsym::AddressRange Range

void decode(llvm::DataExtractor& Data,
            uint64_t BaseAddr,
            uint64_t& Offset)

Description

Address ranges are decoded and encoded to be relative to a base address. See the AddressRange comment for the encode and decode methods for full details. @ {

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:108

Parameters

llvm::DataExtractor& Data
uint64_t BaseAddr
uint64_t& Offset

bool empty() const

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:89

void encode(llvm::gsym::FileWriter& O,
            uint64_t BaseAddr) const

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:109

Parameters

llvm::gsym::FileWriter& O
uint64_t BaseAddr

Collection::const_iterator end() const

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:102

void insert(llvm::gsym::AddressRange Range)

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:92

Parameters

llvm::gsym::AddressRange Range

size_t size() const

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:93

static uint64_t skip(llvm::DataExtractor& Data,
                     uint64_t& Offset)

Description

Skip an address range object in the specified data a the specified offset.

Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:120

Parameters

llvm::DataExtractor& Data
The binary stream to read the data from.
uint64_t& Offset
The byte offset within \a Data.

Returns

The number of address ranges that were skipped.