Interface TraceBreakpointLocation

All Superinterfaces:
TraceBreakpointCommon, TraceObjectInterface, TraceUniqueObject
All Known Implementing Classes:
DBTraceBreakpointLocation

public interface TraceBreakpointLocation extends TraceBreakpointCommon
  • Field Details

  • Method Details

    • getSpecification

      TraceBreakpointSpec getSpecification()
      Get the specification that caused this location to exist
      Returns:
      the specification
    • getKinds

      default Set<TraceBreakpointKind> getKinds(long snap)
      Parameters:
      snap - the snap
      Returns:
      the kinds
    • getThreads

      @Deprecated(forRemoval=true, since="12.0") Set<TraceThread> getThreads(long snap)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Get the set of threads to which this breakpoint's application is limited

      Note, an empty set here implies all contemporary live threads, i.e., the process.

      Parameters:
      snap - the snap
      Returns:
      the (possibly empty) set of affected threads
    • setRange

      void setRange(Lifespan lifespan, AddressRange range)
      Set the range covered by this breakpoint location
      Parameters:
      lifespan - the span of time
      range - the span of addresses
    • getRange

      AddressRange getRange(long snap)
      Get the range covered by this breakpoint location

      Most often, esp. for execution breakpoints, this is a single address.

      Parameters:
      snap - the snap
      Returns:
      the range
    • getMinAddress

      Address getMinAddress(long snap)
      Get the minimum address in this breakpoint's range
      Parameters:
      snap - the snap
      Returns:
      the minimum address
      See Also:
    • getMaxAddress

      Address getMaxAddress(long snap)
      Get the maximum address in this breakpoint's range
      Parameters:
      snap - the snap
      Returns:
      the maximum address
      See Also:
    • getLength

      long getLength(long snap)
      Get the length of this breakpoint, usually 1
      Parameters:
      snap - the snap
      Returns:
      the length
    • setEmuEnabled

      void setEmuEnabled(Lifespan lifespan, boolean enabled)
      Set whether this breakpoint is enabled or disabled for emulation
      Parameters:
      lifespan - the span of time
      enabled - true if enabled, false if disabled
    • setEmuEnabled

      void setEmuEnabled(long snap, boolean enabled)
      Set whether this breakpoint is enabled or disabled for emulation
      Parameters:
      snap - the snap
      enabled - true if enabled, false if disabled
    • isEmuEnabled

      boolean isEmuEnabled(long snap)
      Check whether this breakpoint is enabled or disabled for emulation at the given snap
      Parameters:
      snap - the snap
      Returns:
      true if enabled, false if disabled
    • setEmuSleigh

      void setEmuSleigh(Lifespan lifespan, String sleigh)
      As in setEmuSleigh(long, String), but for a specific lifespan
      Parameters:
      lifespan - the span of time
      sleigh - the Sleigh source
    • setEmuSleigh

      void setEmuSleigh(long snap, String sleigh)
      Set Sleigh source to replace the breakpointed instruction in emulation

      The default is simply:

       emu_swi();
       emu_exec_decoded();
       

      That is effectively a non-conditional breakpoint followed by execution of the actual instruction. Modifying this allows clients to create conditional breakpoints or simply override or inject additional logic into an emulated target.

      NOTE: This currently has no effect on access breakpoints, but only execution breakpoints.

      If the specified source fails to compile during emulator set-up, this will fall back to DefaultPcodeThread.PcodeEmulationLibrary.emu_swi()

      Parameters:
      snap - the snap
      sleigh - the Sleigh source
      See Also:
    • getEmuSleigh

      String getEmuSleigh(long snap)
      Get the Sleigh source that replaces the breakpointed instruction in emulation
      Parameters:
      snap - the snap
      Returns:
      the Sleigh source