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
Collection::const_iterator begin() const
Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:101
¶void clear()
void clear()
Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:88
¶bool contains(uint64_t Addr) const
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
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)
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
bool empty() const
Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:89
¶void encode(llvm::gsym::FileWriter& O,
uint64_t BaseAddr) const
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
Collection::const_iterator end() const
Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:102
¶void insert(llvm::gsym::AddressRange Range)
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
size_t size() const
Declared at: llvm/include/llvm/DebugInfo/GSYM/Range.h:93
¶static uint64_t skip(llvm::DataExtractor& Data,
uint64_t& Offset)
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.