Package ghidra.trace.model.modules

# Interface TraceModuleOperations

All Known Subinterfaces:
  `TraceModuleManager`, `TraceModuleSpace`

All Known Implementing Classes:
  `DBTraceModuleManager`

public interface TraceModuleOperations
Operations for retrieving sections from a trace

Modules do not occupy target memory in and of themselves, but rather, their sections do. Thus, only the section information is mapped out by memory address. Each section inherits its lifespan from the containing module.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Collection<? extends TraceModule>`
  `getAllModules()`
  Get all modules
  `Collection<? extends TraceSection>`
  `getAllSections()`
  Get all sections
  `Collection<? extends TraceModule>`
  `getLoadedModules(long snap)`
  Get all modules loaded at the given snap
  `Collection<? extends TraceModule>`
  `getModulesAt(long snap, Address address)`
  Get modules at the given snap and address
  `Collection<? extends TraceModule>`
  `getModulesIntersecting(Lifespan lifespan, AddressRange range)`
  Get the modules loaded at the given snap intersecting the given address range
  `Collection<? extends TraceSection>`
  `getSectionsAt(long snap, Address address)`
  Get sections at the given snap and address
  `Collection<? extends TraceSection>`
  `getSectionsIntersecting(Lifespan lifespan, AddressRange range)`
  Get the sections loaded at the given snap intersecting the given address range

- ## Method Details

  - ### getAllModules

    Collection<? extends TraceModule> getAllModules()
    Get all modules
    Returns:
      the (possibly empty) collection of modules

  - ### getLoadedModules

    Collection<? extends TraceModule> getLoadedModules(long snap)
    Get all modules loaded at the given snap
    Parameters:
      `snap` - the snapshot key
    Returns:
      the collection of loaded modules

  - ### getModulesAt

    Collection<? extends TraceModule> getModulesAt(long snap, Address address)
    Get modules at the given snap and address
    Parameters:
      `snap` - the snap
      `address` - the address
    Returns:
      the (possibly empty) collection of modules

  - ### getModulesIntersecting

    Collection<? extends TraceModule> getModulesIntersecting(Lifespan lifespan, AddressRange range)
    Get the modules loaded at the given snap intersecting the given address range
    Parameters:
      `lifespan` - the span which the module must intersect
      `range` - the range of memory the module must intersect
    Returns:
      the collection of sections

  - ### getAllSections

    Collection<? extends TraceSection> getAllSections()
    Get all sections
    Returns:
      the (possibly empty) collection of sections

  - ### getSectionsAt

    Collection<? extends TraceSection> getSectionsAt(long snap, Address address)
    Get sections at the given snap and address
    Parameters:
      `snap` - the snap
      `address` - the address
    Returns:
      the (possibly empty) collection of sections

  - ### getSectionsIntersecting

    Collection<? extends TraceSection> getSectionsIntersecting(Lifespan lifespan, AddressRange range)
    Get the sections loaded at the given snap intersecting the given address range
    Parameters:
      `lifespan` - the span which the section's (module's) lifespan must intersect
      `range` - the range of memory each loaded section must intersect
    Returns:
      the collection of sections