Package ghidra.trace.model.symbol

# Interface TraceSymbolWithLocationView<T extends TraceSymbol>

Type Parameters:
  `T` - the type of symbols in the view

All Superinterfaces:
  `TraceSymbolView<T>`

All Known Subinterfaces:
  `TraceLabelSymbolView`

All Known Implementing Classes:
  `DBTraceLabelSymbolView`, `DBTraceSymbolMultipleTypesWithLocationView`

public interface TraceSymbolWithLocationView<T extends TraceSymbol> extends TraceSymbolView<T>
A symbol view for things bound by an address range and lifespan.

NOTE: We may eventually drop the `thread` parameter from these methods, as we transition to using register-space overlays.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default Collection<? extends T>`
  `getAt(long snap, Address address, boolean includeDynamicSymbols)`
  Get symbols in this view at the given point.
  `default Collection<? extends T>`
  `getAt(long snap, TraceThread thread, Register register, boolean includeDynamicSymbols)`
  Get symbols in this view at the given register's min address.
  `default Collection<? extends T>`
  `getAt(TracePlatform platform, long snap, TraceThread thread, Register register, boolean includeDynamicSymbols)`
  Get symbols in this view at the given register's min address.
  `T`
  `getChildWithNameAt(String name, long snap, Address address, TraceNamespaceSymbol parent)`
  Get the child of the given parent having the given name at the given point.
  `default T`
  `getChildWithNameAt(String name, long snap, TraceThread thread, Register register, TraceNamespaceSymbol parent)`
  Get the child of the given parent having the given name at the given register's min address.
  `default T`
  `getChildWithNameAt(String name, TracePlatform platform, long snap, TraceThread thread, Register register, TraceNamespaceSymbol parent)`
  Get the child of the given parent having the given name at the given register's min address.
  `default T`
  `getGlobalWithNameAt(String name, long snap, Address address)`
  A shorthand for `getChildWithNameAt(String, long, Address, TraceNamespaceSymbol)` where parent is the global namespace.
  `default Collection<? extends T>`
  `getIntersecting(TracePlatform platform, Lifespan span, TraceThread thread, Register register, boolean includeDynamicSymbols, boolean forward)`
  Get symbols in this view intersecting the given register.
  `Collection<? extends T>`
  `getIntersecting(Lifespan span, AddressRange range, boolean includeDynamicSymbols, boolean forward)`
  Get symbols in this view intersecting the given box.
  `default Collection<? extends T>`
  `getIntersecting(Lifespan span, TraceThread thread, Register register, boolean includeDynamicSymbols, boolean forward)`
  Get symbols in this view intersecting the given register.
  `default boolean`
  `hasAt(long snap, Address address, boolean includeDynamicSymbols)`
  Check if this view contains any symbols at the given point.

  ### Methods inherited from interface ghidra.trace.model.symbol.TraceSymbolView

  `getAll, getChildren, getChildrenNamed, getGlobals, getGlobalsNamed, getManager, getNamed, getTrace, getWithMatchingName, scanByName, size`

- ## Method Details

  - ### getChildWithNameAt

    T getChildWithNameAt(String name, long snap, Address address, TraceNamespaceSymbol parent)
    Get the child of the given parent having the given name at the given point.
    Parameters:
      `name` - the name of the symbol
      `snap` - the snapshot key
      `address` - the address of the symbol
      `parent` - the parent namespace
    Returns:
      the symbol, or null

  - ### getChildWithNameAt

    default T getChildWithNameAt(String name, TracePlatform platform, long snap, TraceThread thread, Register register, TraceNamespaceSymbol parent)
    Get the child of the given parent having the given name at the given register's min address.
    Parameters:
      `name` - the name of the symbol
      `platform` - the platform defining the register
      `snap` - the snapshot key
      `thread` - the thread
      `register` - the register whose min address to check
      `parent` - the parent namespace
    Returns:
      the symbol, or null

  - ### getChildWithNameAt

    default T getChildWithNameAt(String name, long snap, TraceThread thread, Register register, TraceNamespaceSymbol parent)
    Get the child of the given parent having the given name at the given register's min address.
    Parameters:
      `name` - the name of the symbol
      `snap` - the snapshot key
      `thread` - the thread
      `register` - the register whose min address to check
      `parent` - the parent namespace
    Returns:
      the symbol, or null

  - ### getGlobalWithNameAt

    default T getGlobalWithNameAt(String name, long snap, Address address)
    A shorthand for `getChildWithNameAt(String, long, Address, TraceNamespaceSymbol)` where parent is the global namespace.
    Parameters:
      `name` - the name of the symbol
      `snap` - the snapshot key
      `address` - the address of the symbol
    Returns:
      the symbol, or null

  - ### getIntersecting

    Collection<? extends T> getIntersecting(Lifespan span, AddressRange range, boolean includeDynamicSymbols, boolean forward)
    Get symbols in this view intersecting the given box.
    Parameters:
      `span` - the time bound of the box
      `range` - the address bound of the box
      `includeDynamicSymbols` - true to include dynamically-generated symbols
      `forward` - true if the collection should be ordered forward by address, false for backward by address.
    Returns:
      the symbols in this view satisfying the query

  - ### getIntersecting

    default Collection<? extends T> getIntersecting(TracePlatform platform, Lifespan span, TraceThread thread, Register register, boolean includeDynamicSymbols, boolean forward)
    Get symbols in this view intersecting the given register.
    Parameters:
      `platform` - the platform defining the register
      `span` - the time bound of the box
      `thread` - the thread
      `register` - the register
      `includeDynamicSymbols` - true to include dynamically-generated symbols
      `forward` - true if the collection should be ordered forward by address, false for backward by address.
    Returns:
      the symbols in this view satisfying the query

  - ### getIntersecting

    default Collection<? extends T> getIntersecting(Lifespan span, TraceThread thread, Register register, boolean includeDynamicSymbols, boolean forward)
    Get symbols in this view intersecting the given register.
    Parameters:
      `span` - the time bound of the box
      `thread` - the thread
      `register` - the register
      `includeDynamicSymbols` - true to include dynamically-generated symbols
      `forward` - true if the collection should be ordered forward by address, false for backward by address.
    Returns:
      the symbols in this view satisfying the query

  - ### getAt

    default Collection<? extends T> getAt(long snap, Address address, boolean includeDynamicSymbols)
    Get symbols in this view at the given point.

    The result will be ordered with the primary symbol first.

    Parameters:
      `snap` - the snapshot key
      `address` - the address of the symbols
      `includeDynamicSymbols` - true to include dynamically-generated symbols
    Returns:
      the symbols in this view satisfying the query

  - ### getAt

    default Collection<? extends T> getAt(TracePlatform platform, long snap, TraceThread thread, Register register, boolean includeDynamicSymbols)
    Get symbols in this view at the given register's min address.

    The result will be ordered with the primary symbol first.

    Parameters:
      `platform` - the platform defining the register
      `snap` - the snapshot key
      `thread` - the thread
      `register` - the register
      `includeDynamicSymbols` - true to include dynamically-generated symbols
    Returns:
      the symbols in this view satisfying the query

  - ### getAt

    default Collection<? extends T> getAt(long snap, TraceThread thread, Register register, boolean includeDynamicSymbols)
    Get symbols in this view at the given register's min address.

    The result will be ordered with the primary symbol first.

    Parameters:
      `snap` - the snapshot key
      `thread` - the thread
      `register` - the register
      `includeDynamicSymbols` - true to include dynamically-generated symbols
    Returns:
      the symbols in this view satisfying the query

  - ### hasAt

    default boolean hasAt(long snap, Address address, boolean includeDynamicSymbols)
    Check if this view contains any symbols at the given point.
    Parameters:
      `snap` - the snapshot key
      `address` - the address of the symbols
      `includeDynamicSymbols` - true to include dynamically-generated symbols
    Returns:
      true if any symbols in this view satisfy the query