Enum Class TraceSchedule.ScheduleForm

java.lang.Object
java.lang.Enum<TraceSchedule.ScheduleForm>
ghidra.trace.model.time.schedule.TraceSchedule.ScheduleForm
All Implemented Interfaces:
Serializable, Comparable<TraceSchedule.ScheduleForm>, Constable
Enclosing class:
TraceSchedule

public static enum TraceSchedule.ScheduleForm extends Enum<TraceSchedule.ScheduleForm>
Specifies forms of a stepping schedule.

Each form defines a set of stepping schedules. It happens that each is a subset of the next. A SNAP_ONLY schedule is also a SNAP_ANY_STEPS_OPS schedule, but not necessarily vice versa.

  • Enum Constant Details

    • SNAP_ONLY

      public static final TraceSchedule.ScheduleForm SNAP_ONLY
      The schedule consists only of a snapshot. No stepping after.
    • SNAP_EVT_STEPS

      public static final TraceSchedule.ScheduleForm SNAP_EVT_STEPS
      The schedule consists of a snapshot and some number of instruction steps on the event thread only.
    • SNAP_ANY_STEPS

      public static final TraceSchedule.ScheduleForm SNAP_ANY_STEPS
      The schedule consists of a snapshot and a sequence of instruction steps on any threads(s).
    • SNAP_ANY_STEPS_OPS

      public static final TraceSchedule.ScheduleForm SNAP_ANY_STEPS_OPS
      The schedule consists of a snapshot and a sequence of instruction steps then p-code op steps on any thread(s).

      This is the most capable form supported by TraceSchedule.

  • Field Details

  • Method Details

    • values

      public static TraceSchedule.ScheduleForm[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static TraceSchedule.ScheduleForm valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • contains

      public abstract boolean contains(Trace trace, TraceSchedule schedule)
      Check if the given schedule conforms
      Parameters:
      trace - if available, a trace for determining the event thread
      schedule - the schedule to test
      Returns:
      true if the schedule adheres to this form
    • validate

      public TraceSchedule validate(Trace trace, TraceSchedule schedule)
      If the given schedule conforms, normalize the schedule to prove it does.
      Parameters:
      trace - if available, a trace for determining the event thread
      schedule - the schedule to test
      Returns:
      the non-null normalized schedule, or null if the given schedule does not conform
    • intersect

      Get the more restrictive of this and the given form
      Parameters:
      that - the other form
      Returns:
      the more restrictive form