Interface TraceBaseCodeUnitsView<T extends TraceCodeUnit>
- Type Parameters:
T- the type of units in the view
- All Known Subinterfaces:
InternalBaseCodeUnitsView<T>,InternalTraceBaseDefinedUnitsView<T>,InternalTraceDefinedDataView,TraceBaseDefinedUnitsView<T>,TraceCodeUnitsView,TraceDataView,TraceDefinedDataView,TraceDefinedUnitsView,TraceInstructionsView,TraceUndefinedDataView
- All Known Implementing Classes:
DBTraceCodeUnitsMemoryView,DBTraceCodeUnitsView,DBTraceDataMemoryView,DBTraceDataView,DBTraceDefinedDataMemoryView,DBTraceDefinedDataView,DBTraceDefinedUnitsMemoryView,DBTraceDefinedUnitsView,DBTraceInstructionsMemoryView,DBTraceInstructionsView,DBTraceUndefinedDataMemoryView,DBTraceUndefinedDataView
-
Method Summary
Modifier and TypeMethodDescriptionbooleancontainsAddress(long snap, Address address) Check if the given address is contained by a live unitbooleancoversRange(Lifespan span, AddressRange range) Check if the given span of snaps and range of addresses is covered by the unitsbooleancoversRange(TraceAddressSnapRange range) Check if the given address-snap range is covered by the unitsget(long snap, boolean forward) Get all the live unitsGet the live units whose start addresses are within the specified rangeget(long snap, AddressRange range, boolean forward) Get the live units whose start addresses are within the specified rangeGet the live units whose start addresses are within the specified rangeget(long snap, AddressSetView set, boolean forward) Get the live units whose start addresses are in the given setGet the live units whose start addresses are within the given registerget(TracePlatform platform, long snap, Register register, boolean forward) Get the live units whose start addresses are within the given registergetAddressSetView(long snap) Get all addresses contained by live units at the given snapgetAddressSetView(long snap, AddressRange within) Get all addresses contained by live units at the given snap, within a restricted rangeGet the nearest live unit whose start address is after the given addressGet the unit starting at exactly this address Note that the unit need only contain the given snapGet the nearest live unit whose start address is before the given addressgetCeiling(long snap, Address address) Get the nearest live unit whose start address is at or after the given addressgetContaining(long snap, Address address) Get the live unit containing the given addressdefault TgetContaining(long snap, Register register) Get the unit which completely contains the given registergetContaining(TracePlatform platform, long snap, Register register) Get the unit which completely contains the given registerGet the nearest live unit whose start address is at or before the given addressdefault TgetForRegister(long snap, Register register) Get the unit (or component of a structure) which spans exactly the addresses of the given registergetForRegister(TracePlatform platform, long snap, Register register) Get the unit (or component of a structure) which spans exactly the addresses of the given platform registerGet the units which intersect the given box, in no particular ordergetTrace()Get the trace for this viewbooleanintersectsRange(Lifespan span, AddressRange range) Check if the given span of snaps and range of addresses intersects any unitbooleanCheck if the given span of snaps and range of addresses intersects any unitintsize()Get the total number of defined units in this view
-
Method Details
-
getTrace
Trace getTrace()Get the trace for this view- Returns:
- the trace
-
size
int size()Get the total number of defined units in this view- Returns:
- the size
-
getBefore
Get the nearest live unit whose start address is before the given address- Parameters:
snap- the snap during which the unit must be aliveaddress- the address which the unit's start must precede- Returns:
- the code unit, or
nullif it doesn't exist
-
getFloor
Get the nearest live unit whose start address is at or before the given address- Parameters:
snap- the snap during which the unit must be aliveaddress- the address which the unit's start must equal or precede- Returns:
- the code unit, or
nullif it doesn't exist
-
getContaining
Get the live unit containing the given address- Parameters:
snap- the snap during which the unit must be aliveaddress- the address which the unit must contain- Returns:
- the code unit, or
nullif it doesn't exist
-
getAt
Get the unit starting at exactly this address Note that the unit need only contain the given snap- Parameters:
snap- the snap during which the unit must be aliveaddress- the unit's start address- Returns:
- the code unit, or
nullif it doesn't exist
-
getCeiling
Get the nearest live unit whose start address is at or after the given address- Parameters:
snap- the snap during which the unit must be aliveaddress- the address which the unit's start must equal or follow- Returns:
- the code unit, or
nullif it doesn't exist
-
getAfter
Get the nearest live unit whose start address is after the given address- Parameters:
snap- the snap during which the unit must be aliveaddress- the address which the unit's start must follow- Returns:
- the code unit, or
nullif it doesn't exist
-
get
Get the live units whose start addresses are within the specified range- Parameters:
snap- the snap during which the units must be alivemin- the minimum start address, inclusivemax- the maximum start address, inclusiveforward- true to order the units by increasing address, false for descending- Returns:
- the iterable of units
-
get
Get the live units whose start addresses are in the given set- Parameters:
snap- the snap during which the units must be aliveset- the address setforward- true to order the units by increasing address, false for descending- Returns:
- the iterable of units
-
get
Get the live units whose start addresses are within the specified range- Parameters:
snap- the snap during which the units must be aliverange- the address rangeforward- true to order the units by increasing address, false for descending- Returns:
- the iterable of units
-
get
Get the live units whose start addresses are within the specified range- Parameters:
snap- the snap during which the units must be alivestart- the minimum (forward) or maximum (backward) start address, inclusiveforward- true to order the units by increasing address, false for descending- Returns:
- the iterable of units
-
get
Get all the live units- Parameters:
snap- the snap during which the units must be aliveforward- true to order the units by increasing address, false for descending- Returns:
- the iterable of units
-
getIntersecting
Get the units which intersect the given box, in no particular order- Parameters:
tasr- the box (snap range by address range)- Returns:
- an iterable over the intersecting units
-
getAddressSetView
Get all addresses contained by live units at the given snapNote that the ranges in this set may not be coalesced. If a coalesced set is required, wrap it with
UnionAddressSetView.- Parameters:
snap- the snap during which the units must be alive- Returns:
- a (lazy) view of the address set
-
getAddressSetView
Get all addresses contained by live units at the given snap, within a restricted rangeNote that the ranges in this set may not be coalesced. If a coalesced set is required, wrap it with
UnionAddressSetView. The returned ranges are not necessarily enclosed bywithin, but they will intersect it. If strict enclosure is required, wrap the set withIntersectionAddressSetView.- Parameters:
snap- the snap during which the units must be alivewithin- the range to restrict the view- Returns:
- a (lazy) view of the address set
-
containsAddress
Check if the given address is contained by a live unit- Parameters:
snap- the snap during which the unit must be aliveaddress- the address to check- Returns:
- true if it is contained, false if not
-
coversRange
Check if the given span of snaps and range of addresses is covered by the unitsThis checks if every (snap, address) point within the given box is contained within some code unit in this view.
- Parameters:
span- the span of snapsrange- the address range- Returns:
- true if covered, false otherwise
-
coversRange
Check if the given address-snap range is covered by the unitsThis checks if every (snap, address) point within the given box is contained within some code unit in this view.
- Parameters:
range- the address-snap range- Returns:
- true if covered, false otherwise
-
intersectsRange
Check if the given span of snaps and range of addresses intersects any unitThis checks if any (snap, address) point within the given box is contained within some code unit in this view.
- Parameters:
span- the span of snapsrange- the address range- Returns:
- true if intersecting, false otherwise
-
intersectsRange
Check if the given span of snaps and range of addresses intersects any unitThis checks if any (snap, address) point within the given box is contained within some code unit in this view.
- Parameters:
range- the address-snap range- Returns:
- true if intersecting, false otherwise
-
getForRegister
Get the unit (or component of a structure) which spans exactly the addresses of the given register- Parameters:
snap- the snapregister- the register- Returns:
- the unit or
null
-
getForRegister
Get the unit (or component of a structure) which spans exactly the addresses of the given platform register- Parameters:
platform- the platform whose language defines the registersnap- the snapregister- the register- Returns:
- the unit or
null
-
getContaining
Get the unit which completely contains the given registerThis does not descend into structures.
- Parameters:
snap- the snap during which the unit must be aliveregister- the register- Returns:
- the unit or
unit
-
getContaining
Get the unit which completely contains the given registerThis does not descend into structures.
- Parameters:
platform- the platform whose language defines the registersnap- the snap during which the unit must be aliveregister- the register- Returns:
- the unit or
unit
-
get
Get the live units whose start addresses are within the given register- Parameters:
snap- the snapregister- the registerforward- true to order the units by increasing address, false for descending- Returns:
- the iterable of units
-
get
Get the live units whose start addresses are within the given register- Parameters:
platform- the platform whose language defines the registersnap- the snap during which the units must be aliveregister- the registerforward- true to order the units by increasing address, false for descending- Returns:
- the iterable of units
-