Interface TraceDefinedDataView

All Superinterfaces:
TraceBaseCodeUnitsView<TraceData>, TraceBaseDefinedUnitsView<TraceData>
All Known Subinterfaces:
InternalTraceDefinedDataView
All Known Implementing Classes:
DBTraceDefinedDataMemoryView, DBTraceDefinedDataView

public interface TraceDefinedDataView extends TraceBaseDefinedUnitsView<TraceData>
A view of defined data units

This view excludes instructions and default / undefined data units.

  • Method Details

    • create

      TraceData create(Lifespan lifespan, Address address, DataType dataType, int length) throws CodeUnitInsertionException
      Create a data unit starting at the given address

      If the given type is already part of this trace, its platform is used as is. If not, then it is resolved to the host platform.

      Parameters:
      lifespan - the span for which the unit is effective
      address - the starting address
      dataType - the data type for the unit
      length - the length of the unit, -1 for unspecified
      Returns:
      the new data unit
      Throws:
      CodeUnitInsertionException - if there's a conflict
    • create

      TraceData create(Lifespan lifespan, Address address, TracePlatform platform, DataType dataType, int length) throws CodeUnitInsertionException
      Create a data unit starting at the given address

      The given type is resolved to the given platform, even if the type already exists in the trace by another platform.

      Parameters:
      lifespan - the span for which the unit is effective
      address - the starting address
      platform - the platform for the type's DataOrganization
      dataType - the data type for the unit
      length - the length of the unit, -1 for unspecified
      Returns:
      the new data unit
      Throws:
      CodeUnitInsertionException - if there's a conflict
    • create

      TraceData create(Lifespan lifespan, Address address, DataType dataType) throws CodeUnitInsertionException
      Create a data unit of unspecified length starting at the given address

      The length will be determined by the data type, possibly by examining the bytes, e.g., a null-terminated UTF-8 string. If the given type is already part of this trace, its platform is used as is. If not, then it is resolved to the host platform.

      Parameters:
      lifespan - the span for which the unit is effective
      address - the starting address
      dataType - the data type for the unit
      Returns:
      the new data unit
      Throws:
      CodeUnitInsertionException - if there's a conflict
    • create

      TraceData create(Lifespan lifespan, Address address, TracePlatform platform, DataType dataType) throws CodeUnitInsertionException
      Create a data unit of unspecified length starting at the given address

      The length will be determined by the data type, possibly by examining the bytes, e.g., a null-terminated UTF-8 string. The given type is resolved to the given platform, even if the type already exists in the trace by another platform.

      Parameters:
      lifespan - the span for which the unit is effective
      address - the starting address
      platform - the platform for the type's DataOrganization
      dataType - the data type for the unit
      Returns:
      the new data unit
      Throws:
      CodeUnitInsertionException - if there's a conflict
    • create

      default TraceData create(Lifespan lifespan, Register register, DataType dataType) throws CodeUnitInsertionException
      Create a data unit on the given register

      If the register is memory mapped, this will delegate to the appropriate space. In those cases, the assignment affects all threads. The type is resolved to the host platform, even if it already exists in the trace by another platform.

      Parameters:
      lifespan - the span for which the unit is effective
      register - the register to assign a data type
      dataType - the data type for the register
      Returns:
      the new data unit
      Throws:
      CodeUnitInsertionException - if there's a conflict
    • create

      TraceData create(TracePlatform platform, Lifespan lifespan, Register register, DataType dataType) throws CodeUnitInsertionException
      Create a data unit on the given platform register

      If the register is memory mapped, this will delegate to the appropriate space. In those cases, the assignment affects all threads. The type is resolved to the given platform, even if it already exists in the trace by another platform.

      Parameters:
      platform - the platform whose language defines the register
      lifespan - the span for which the unit is effective
      register - the register to assign a data type
      dataType - the data type for the register
      Returns:
      the new data unit
      Throws:
      CodeUnitInsertionException - if there's a conflict