Package ghidra.trace.database.address

# Class TraceAddressFactory

java.lang.Object
ghidra.program.model.address.DefaultAddressFactory
ghidra.program.database.ProgramAddressFactory
ghidra.trace.database.address.TraceAddressFactory

All Implemented Interfaces:
  `AddressFactory`

public class TraceAddressFactory extends ProgramAddressFactory

- ## Field Summary

  ### Fields inherited from class ghidra.program.database.ProgramAddressFactory

  `overlayRegionSupplier`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TraceAddressFactory(Language language, CompilerSpec compilerSpec, OverlayRegionSupplier overlayRegionSupplier)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected ProgramOverlayAddressSpace`
  `addOverlaySpace(long key, String overlayName, AddressSpace baseSpace)`
  Create a new ProgramOverlayAddressSpace based upon the given overlay blockName and base AddressSpace
  `protected void`
  `addOverlaySpace(ProgramOverlayAddressSpace ovSpace)`
  Add an overlay address space to this factory
  `protected boolean`
  `isValidOverlayBaseSpace(AddressSpace baseSpace)`
  Determine whether the given space can have an overlay
  `protected void`
  `overlaySpaceRenamed(String oldOverlaySpaceName, String newName, boolean refreshStatusIfNeeded)`
  `protected void`
  `refreshStaleOverlayStatus()`
  Examine all overlay spaces and update the stale status indicator (see `ProgramAddressFactory.hasStaleOverlays`).
  `protected void`
  `removeOverlaySpace(String name)`
  Remove an overlay space.

  ### Methods inherited from class ghidra.program.database.ProgramAddressFactory

  `checkValidOverlaySpaceName, getAddress, getAddress, getStackSpace, hasStaleOverlayCondition, invalidateOverlayCache`

  ### Methods inherited from class ghidra.program.model.address.DefaultAddressFactory

  `addAddressSpace, equals, getAddressSet, getAddressSet, getAddressSpace, getAddressSpace, getAddressSpaces, getAllAddresses, getAllAddresses, getAllAddressSpaces, getConstantAddress, getConstantSpace, getDefaultAddressSpace, getIndex, getNumAddressSpaces, getPhysicalSpace, getPhysicalSpaces, getRegisterSpace, getUniqueSpace, hasMultipleMemorySpaces, isValidAddress, oldGetAddressFromLong, overlaySpaceRenamed, removeAddressSpace`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### TraceAddressFactory

    public TraceAddressFactory(Language language, CompilerSpec compilerSpec, OverlayRegionSupplier overlayRegionSupplier)

- ## Method Details

  - ### isValidOverlayBaseSpace

    protected boolean isValidOverlayBaseSpace(AddressSpace baseSpace)
    Description copied from class: `ProgramAddressFactory`
    Determine whether the given space can have an overlay
    Overrides:
      `isValidOverlayBaseSpace` in class `ProgramAddressFactory`
    Parameters:
      `baseSpace` - the overlay base address space
    Returns:
      true to allow, false to prohibit

  - ### addOverlaySpace

    protected ProgramOverlayAddressSpace addOverlaySpace(long key, String overlayName, AddressSpace baseSpace) throws DuplicateNameException
    Description copied from class: `ProgramAddressFactory`
    Create a new ProgramOverlayAddressSpace based upon the given overlay blockName and base AddressSpace
    Overrides:
      `addOverlaySpace` in class `ProgramAddressFactory`
    Parameters:
      `key` - overlay record key
      `overlayName` - overlay name
      `baseSpace` - the base AddressSpace to overlay
    Returns:
      the new overlay space
    Throws:
      `DuplicateNameException` - if overlay name duplicates another address space name

  - ### addOverlaySpace

    protected void addOverlaySpace(ProgramOverlayAddressSpace ovSpace) throws DuplicateNameException
    Description copied from class: `ProgramAddressFactory`
    Add an overlay address space to this factory
    Overrides:
      `addOverlaySpace` in class `ProgramAddressFactory`
    Parameters:
      `ovSpace` - overlay space
    Throws:
      `DuplicateNameException` - if name of overlay space already exists in this factory

  - ### removeOverlaySpace

    protected void removeOverlaySpace(String name)
    Description copied from class: `ProgramAddressFactory`
    Remove an overlay space. It may be neccessary to invoke `ProgramAddressFactory.refreshStaleOverlayStatus()` when an overlay is removed.
    Overrides:
      `removeOverlaySpace` in class `ProgramAddressFactory`
    Parameters:
      `name` - overlay space name

  - ### overlaySpaceRenamed

    protected void overlaySpaceRenamed(String oldOverlaySpaceName, String newName, boolean refreshStatusIfNeeded)
    Overrides:
      `overlaySpaceRenamed` in class `ProgramAddressFactory`

  - ### refreshStaleOverlayStatus

    protected void refreshStaleOverlayStatus()
    Description copied from class: `ProgramAddressFactory`
    Examine all overlay spaces and update the stale status indicator (see `ProgramAddressFactory.hasStaleOverlays`).
    Overrides:
      `refreshStaleOverlayStatus` in class `ProgramAddressFactory`