Package ghidra.trace.model

# Interface Trace

All Superinterfaces:
  `DataTypeManagerDomainObject`, `DataTypeManagerOwner`, `DomainObject`

All Known Implementing Classes:
  `DBTrace`

public interface Trace extends DataTypeManagerDomainObject
An indexed record of observations over the course of a target's execution

Conceptually, this is the same as a `Program`, but multiplied by a concrete dimension of time and organized into `snapshots`. This also includes information about other objects not ordinarily of concern for static analysis, for example, `threads`, `modules`, and `breakpoints`. To view a specific snapshot and/or manipulate the trace as if it were a program, use `getProgramView()`.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static interface`
  `Trace.TraceProgramViewListener`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Icon`
  `TRACE_ICON`

  ### Fields inherited from interface ghidra.framework.model.DomainObject

  `DO_DOMAIN_FILE_CHANGED, DO_OBJECT_CLOSED, DO_OBJECT_ERROR, DO_OBJECT_RENAMED, DO_OBJECT_RESTORED, DO_OBJECT_SAVED, DO_PROPERTY_CHANGED, undoLock`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addProgramViewListener(Trace.TraceProgramViewListener listener)`
  `TraceVariableSnapProgramView`
  `createProgramView(long snap)`
  `TraceTimeViewport`
  `createTimeViewport()`
  `TraceAddressPropertyManager`
  `getAddressPropertyManager()`
  `Collection<TraceProgramView>`
  `getAllProgramViews()`
  Collect all program views, fixed or variable, of this trace.
  `AddressFactory`
  `getBaseAddressFactory()`
  `CompilerSpec`
  `getBaseCompilerSpec()`
  `TraceBasedDataTypeManager`
  `getBaseDataTypeManager()`
  `Language`
  `getBaseLanguage()`
  `TraceBookmarkManager`
  `getBookmarkManager()`
  `TraceBreakpointManager`
  `getBreakpointManager()`
  `TraceCodeManager`
  `getCodeManager()`
  `default TraceBasedDataTypeManager`
  `getDataTypeManager()`
  Gets the associated data type manager.
  `long`
  `getEmulatorCacheVersion()`
  `TraceEquateManager`
  `getEquateManager()`
  `TraceProgramView`
  `getFixedProgramView(long snap)`
  `TraceMemoryManager`
  `getMemoryManager()`
  `TraceModuleManager`
  `getModuleManager()`
  `TraceObjectManager`
  `getObjectManager()`
  `TracePlatformManager`
  `getPlatformManager()`
  `TraceVariableSnapProgramView`
  `getProgramView()`
  Get the "canonical" program view for this trace
  `TraceReferenceManager`
  `getReferenceManager()`
  `TraceRegisterContextManager`
  `getRegisterContextManager()`
  `TraceStackManager`
  `getStackManager()`
  `TraceStaticMappingManager`
  `getStaticMappingManager()`
  `TraceSymbolManager`
  `getSymbolManager()`
  `TraceThreadManager`
  `getThreadManager()`
  `TraceTimeManager`
  `getTimeManager()`
  `LockHold`
  `lockRead()`
  `LockHold`
  `lockWrite()`
  `void`
  `removeProgramViewListener(Trace.TraceProgramViewListener listener)`
  `void`
  `setEmulatorCacheVersion(long version)`

  ### Methods inherited from interface ghidra.framework.model.DomainObject

  `addCloseListener, addConsumer, addDomainFileListener, addListener, addSynchronizedDomainObject, addTransactionListener, canLock, canRedo, canSave, canUndo, clearUndo, createPrivateEventQueue, endTransaction, flushEvents, flushPrivateEventQueue, forceLock, getAllRedoNames, getAllUndoNames, getConsumerList, getCurrentTransactionInfo, getDescription, getDomainFile, getMetadata, getModificationNumber, getName, getOptions, getOptionsNames, getRedoName, getSynchronizedDomainObjects, getUndoName, hasExclusiveAccess, hasTerminatedTransaction, isChangeable, isChanged, isClosed, isLocked, isSendingEvents, isTemporary, isUsedBy, lock, openTransaction, redo, release, releaseSynchronizedDomainObject, removeCloseListener, removeDomainFileListener, removeListener, removePrivateEventQueue, removeTransactionListener, save, saveToPackedFile, setEventsEnabled, setName, setTemporary, startTransaction, startTransaction, undo, unlock, withTransaction, withTransaction`

- ## Field Details

  - ### TRACE_ICON

    static final Icon TRACE_ICON

- ## Method Details

  - ### getBaseLanguage

    Language getBaseLanguage()

  - ### getBaseCompilerSpec

    CompilerSpec getBaseCompilerSpec()

  - ### setEmulatorCacheVersion

    void setEmulatorCacheVersion(long version)

  - ### getEmulatorCacheVersion

    long getEmulatorCacheVersion()

  - ### getBaseAddressFactory

    AddressFactory getBaseAddressFactory()

  - ### getAddressPropertyManager

    TraceAddressPropertyManager getAddressPropertyManager()

  - ### getBookmarkManager

    TraceBookmarkManager getBookmarkManager()

  - ### getBreakpointManager

    TraceBreakpointManager getBreakpointManager()

  - ### getCodeManager

    TraceCodeManager getCodeManager()

  - ### getDataTypeManager

    default TraceBasedDataTypeManager getDataTypeManager()
    Gets the associated data type manager.

    For traces, this gets the "base" or "host" `DataTypeManager`. For platform-specific managers, see `TracePlatform.getDataTypeManager()`.

    Specified by:
      `getDataTypeManager` in interface `DataTypeManagerOwner`
    Returns:
      the data type manager.

  - ### getBaseDataTypeManager

    TraceBasedDataTypeManager getBaseDataTypeManager()

  - ### getEquateManager

    TraceEquateManager getEquateManager()

  - ### getPlatformManager

    TracePlatformManager getPlatformManager()

  - ### getMemoryManager

    TraceMemoryManager getMemoryManager()

  - ### getModuleManager

    TraceModuleManager getModuleManager()

  - ### getObjectManager

    TraceObjectManager getObjectManager()

  - ### getReferenceManager

    TraceReferenceManager getReferenceManager()

  - ### getRegisterContextManager

    TraceRegisterContextManager getRegisterContextManager()

  - ### getStackManager

    TraceStackManager getStackManager()

  - ### getStaticMappingManager

    TraceStaticMappingManager getStaticMappingManager()

  - ### getSymbolManager

    TraceSymbolManager getSymbolManager()

  - ### getThreadManager

    TraceThreadManager getThreadManager()

  - ### getTimeManager

    TraceTimeManager getTimeManager()

  - ### getFixedProgramView

    TraceProgramView getFixedProgramView(long snap)

  - ### createProgramView

    TraceVariableSnapProgramView createProgramView(long snap)

  - ### getAllProgramViews

    Collection<TraceProgramView> getAllProgramViews()
    Collect all program views, fixed or variable, of this trace.
    Returns:
      the current set of program views

  - ### getProgramView

    TraceVariableSnapProgramView getProgramView()
    Get the "canonical" program view for this trace

    This view is the view returned, e.g., by `TraceCodeUnit.getProgram()`, no matter which view was actually used to retrieve that unit.

    Returns:
      the canonical program view

  - ### createTimeViewport

    TraceTimeViewport createTimeViewport()

  - ### addProgramViewListener

    void addProgramViewListener(Trace.TraceProgramViewListener listener)

  - ### removeProgramViewListener

    void removeProgramViewListener(Trace.TraceProgramViewListener listener)

  - ### lockRead

    LockHold lockRead()

  - ### lockWrite

    LockHold lockWrite()