public class

MemoryRanges

extends Object
java.lang.Object
   ↳ com.pnfsoftware.jeb.core.units.code.asm.analyzer.MemoryRanges

Class Overview

A collection of byte-addressable memory ranges. The final addressable byte (e.g., @ 0xFFFFFFFF in a 32-bit address space) cannot be part of any range.

This class is not thread-safe.

Summary

Nested Classes
class MemoryRanges.Range A continuous memory range. 
Public Constructors
MemoryRanges(int spaceBits)
MemoryRanges()
MemoryRanges(IVirtualMemory mem)
Public Methods
void add(long begin0, long end0)
long aggregatedRangesSize()
List<Couple<Long, Long>> asList()
Convert the MemoryRanges to a List of ranges (stored as Couple.
void clear()
boolean contains(long address)
Indicate if an address is defined in this MemoryRanges
int count()
Long getLocalBegin(long address0)
Long getLocalEnd(long address0)
Couple<Long, Long> getLocalRange(long address0)
Couple<Long, Long> getNextRange(long address0)
Couple<Long, Long> getPreviousRange(long address0)
boolean intersects(long addressStart, long addressEnd)
Indicate if an element from range [addressStart:addressEnd[ is defined in this MemoryRanges.
Long max()
Long min()
void remove(long begin0, long end0)
long spanSize()
String toString()
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public MemoryRanges (int spaceBits)

public MemoryRanges ()

public MemoryRanges (IVirtualMemory mem)

Public Methods

public void add (long begin0, long end0)

public long aggregatedRangesSize ()

public List<Couple<Long, Long>> asList ()

Convert the MemoryRanges to a List of ranges (stored as Couple.

Returns

public void clear ()

public boolean contains (long address)

Indicate if an address is defined in this MemoryRanges

Parameters
address address to test
Returns

public int count ()

public Long getLocalBegin (long address0)

public Long getLocalEnd (long address0)

public Couple<Long, Long> getLocalRange (long address0)

public Couple<Long, Long> getNextRange (long address0)

public Couple<Long, Long> getPreviousRange (long address0)

public boolean intersects (long addressStart, long addressEnd)

Indicate if an element from range [addressStart:addressEnd[ is defined in this MemoryRanges.

Parameters
addressStart start address (inclusive)
addressEnd end address (exclusive)
Returns
  • true if MemoryRanges contains at least one address from the given range

public Long max ()

public Long min ()

public void remove (long begin0, long end0)

public long spanSize ()

public String toString ()