# Hierarchy For Package ghidra.trace.util

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - java.util.AbstractCollection<E> (implements java.util.Collection<E>)
    - java.util.AbstractSet<E> (implements java.util.Set<E>)
      - ghidra.trace.util.CopyOnWrite.WeakAbstractCowSet<E>
        - ghidra.trace.util.CopyOnWrite.WeakHashCowSet<E>
  - generic.util.AbstractPeekableIterator<T> (implements generic.util.PeekableIterator<T>)
    - ghidra.trace.util.OverlappingObjectIterator<L,R>
    - ghidra.trace.util.TraceViewportSpanIterator
  - ghidra.util.datastruct.AbstractWeakValueMap<K,V> (implements java.util.Map<K,V>)
    - ghidra.trace.util.CopyOnWrite.WeakValueAbstractCowMap<K,V>
      - ghidra.trace.util.CopyOnWrite.WeakValueHashCowMap<K,V>
  - ghidra.trace.util.CopyOnWrite.AbstractCowMap<K,V> (implements java.util.Map<K,V>)
    - ghidra.trace.util.CopyOnWrite.HashCowMap<K,V>
  - ghidra.framework.model.DomainObjectChangeRecord (implements java.io.Serializable)
    - ghidra.trace.util.TraceChangeRecord<T,U>
  - ghidra.trace.util.EnumeratingIterator.WrappingEnumeratingIterator<T> (implements ghidra.trace.util.EnumeratingIterator<T>)
  - ghidra.trace.util.MethodProtector
  - ghidra.trace.util.OverlappingObjectIterator.AddressRangeRanger (implements ghidra.trace.util.OverlappingObjectIterator.Ranger<T>)
  - ghidra.trace.util.OverlappingObjectIterator.CodeUnitRanger (implements ghidra.trace.util.OverlappingObjectIterator.Ranger<T>)
  - ghidra.trace.util.OverlappingObjectIterator.SnapRangeKeyRanger (implements ghidra.trace.util.OverlappingObjectIterator.Ranger<T>)
  - ghidra.trace.util.TypedEventDispatcher
  - ghidra.trace.util.WrappingCodeUnitIterator (implements ghidra.program.model.listing.CodeUnitIterator)
  - ghidra.trace.util.WrappingDataIterator (implements ghidra.program.model.listing.DataIterator)
  - ghidra.trace.util.WrappingFunctionIterator (implements ghidra.program.model.listing.FunctionIterator)
  - ghidra.trace.util.WrappingInstructionIterator (implements ghidra.program.model.listing.InstructionIterator)

## Interface Hierarchy

- ghidra.trace.util.CopyOnWrite
- ghidra.framework.model.EventType
  - ghidra.trace.util.TraceEvent<T,U>
- java.lang.Iterable<T>
  - ghidra.program.model.address.AddressSetView
    - ghidra.program.model.mem.Memory
      - ghidra.trace.util.MemoryAdapter
- java.util.Iterator<E>
  - ghidra.trace.util.EnumeratingIterator<T>
- ghidra.program.model.mem.MemBuffer
  - ghidra.program.model.listing.CodeUnit (also extends ghidra.program.model.util.PropertySet)
    - ghidra.program.model.listing.Data (also extends ghidra.docking.settings.Settings)
      - ghidra.trace.util.DataAdapterFromDataType
      - ghidra.trace.util.DataAdapterFromSettings
      - ghidra.trace.util.DataAdapterMinimal
    - ghidra.program.model.listing.Instruction (also extends ghidra.program.model.lang.ProcessorContext)
      - ghidra.trace.model.listing.TraceInstruction (also extends ghidra.trace.model.listing.TraceCodeUnit)
        - ghidra.trace.util.InstructionAdapterFromPrototype
    - ghidra.trace.model.listing.TraceCodeUnit
      - ghidra.trace.model.listing.TraceInstruction (also extends ghidra.program.model.listing.Instruction)
        - ghidra.trace.util.InstructionAdapterFromPrototype
- ghidra.trace.util.MethodProtector.TemperamentalCallable<E>
- ghidra.trace.util.OverlappingObjectIterator.Ranger<T>
- ghidra.program.model.lang.ProcessorContextView
  - ghidra.program.model.lang.ProcessorContext
    - ghidra.program.model.listing.Instruction (also extends ghidra.program.model.listing.CodeUnit)
      - ghidra.trace.model.listing.TraceInstruction (also extends ghidra.trace.model.listing.TraceCodeUnit)
        - ghidra.trace.util.InstructionAdapterFromPrototype
- ghidra.program.model.util.PropertySet
  - ghidra.program.model.listing.CodeUnit (also extends ghidra.program.model.mem.MemBuffer)
    - ghidra.program.model.listing.Data (also extends ghidra.docking.settings.Settings)
      - ghidra.trace.util.DataAdapterFromDataType
      - ghidra.trace.util.DataAdapterFromSettings
      - ghidra.trace.util.DataAdapterMinimal
    - ghidra.program.model.listing.Instruction (also extends ghidra.program.model.lang.ProcessorContext)
      - ghidra.trace.model.listing.TraceInstruction (also extends ghidra.trace.model.listing.TraceCodeUnit)
        - ghidra.trace.util.InstructionAdapterFromPrototype
    - ghidra.trace.model.listing.TraceCodeUnit
      - ghidra.trace.model.listing.TraceInstruction (also extends ghidra.program.model.listing.Instruction)
        - ghidra.trace.util.InstructionAdapterFromPrototype
- ghidra.docking.settings.Settings
  - ghidra.program.model.listing.Data (also extends ghidra.program.model.listing.CodeUnit)
    - ghidra.trace.util.DataAdapterFromDataType
    - ghidra.trace.util.DataAdapterFromSettings
    - ghidra.trace.util.DataAdapterMinimal
- ghidra.trace.util.TraceChangeManager
- ghidra.trace.util.TraceEvents
- ghidra.trace.util.TraceSpaceMixin
- ghidra.trace.util.TypedEventDispatcher.EventRecordHandler<T,U>
  - ghidra.trace.util.TypedEventDispatcher.AffectedAndValuesOnlyHandler<T,U>
  - ghidra.trace.util.TypedEventDispatcher.AffectedObjectHandler<T>
  - ghidra.trace.util.TypedEventDispatcher.AffectedObjectOnlyHandler<T>
  - ghidra.trace.util.TypedEventDispatcher.FullEventRecordHandler<T,U>
  - ghidra.trace.util.TypedEventDispatcher.IgnoreAllHandler
  - ghidra.trace.util.TypedEventDispatcher.IgnoreValuesHandler
  - ghidra.trace.util.TypedEventDispatcher.SpaceValuesHandler<U>
  - ghidra.trace.util.TypedEventDispatcher.ValuesOnlyHandler<U>

## Enum Class Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - ghidra.trace.util.ByteArrayUtils
    - ghidra.trace.util.EmptyFunctionIterator (implements ghidra.program.model.listing.FunctionIterator)
    - ghidra.trace.util.TraceEvent.TraceBookmarkEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceBookmarkLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceBookmarkTypeEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceBreakpointEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceBreakpointLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceBytesEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceCodeDataSettingsEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceCodeDataTypeEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceCodeEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceCodeFragmentEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceCodeLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceCommentEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceCompositeDataEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceCompositeDataLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceDataTypeEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceDataTypePathEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceDataTypeStringEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceInstructionBoolEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceInstructionFlowEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceInstructionIntEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceMappingEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceMemoryRegionEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceMemoryRegionLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceMemoryStateEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceModuleEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceModuleLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceObjectEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceObjectValueEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceObjectValueLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceOverlaySpaceEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TracePlatformEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TracePlatformMappingEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceReferenceBoolEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceReferenceEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceReferenceLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSectionEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSnapshotEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceStackEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceStackLongEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSymbolAddressEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSymbolEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSymbolLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSymbolNamespaceEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSymbolRefEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSymbolSourceEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSymbolStringEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceSymbolSymEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceThreadEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceThreadLifespanEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceTypeArchiveEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceTypeCategoryEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceTypeCategoryPathEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceEvent.TraceTypeCategoryStringEvent (implements ghidra.trace.util.TraceEvent<T,U>)
    - ghidra.trace.util.TraceRegisterUtils