Interface ReenterStepRequest

All Superinterfaces:
EventRequest, Mirror, StepRequest

public interface ReenterStepRequest extends StepRequest
A reenter step request is a step event request that will be activated when the given thread is about to pop the top stack frame. At this point, the VM is expected to do the following:
  1. The arguments to the method are carefully set aside, along with the identity of the actual method.
  2. The stack frame is popped. Any value being returned is discarded. Any exception being thrown is ignored. Instruction counter in caller is set at (rather than after) the send bytecode.
  3. Suspend the thread depending on the suspend policy and report a StepEvent for this request.
  4. When the thread is resumed, the method is re-retrieved; if the class had recently been reloaded, this must find the new bytecodes. If the method is no longer present, throw a java.lang.NoSuchMethodError as specified in the Java VM Specification.
  5. The method is entered as per normal, using the saved arguments.

Note that other events may need to be reported as well (e.g., hit breakpoint on first instruction). Execution does not reenter the caller at any point; so no step out or step into events are reported.

  • Method Details

    • addClassExclusionFilter

      void addClassExclusionFilter(String classPattern)
      Restricts the events generated by this request to those whose location is in a class whose name does NOT match this restricted regular expression. e.g. "java.*" or "*.Foo".
      Specified by:
      addClassExclusionFilter in interface StepRequest
      Parameters:
      classPattern - the pattern String to filter against.
    • addClassFilter

      void addClassFilter(ReferenceType clazz)
      Restricts the events generated by this request to those whose location is in this class..
      Specified by:
      addClassFilter in interface StepRequest
      Parameters:
      clazz - the class to filter on.
    • addClassFilter

      void addClassFilter(String classPattern)
      Restricts the events generated by this request to those whose location is in a class whose name matches this restricted regular expression. e.g. "java.*" or "*.Foo".
      Specified by:
      addClassFilter in interface StepRequest
      Parameters:
      classPattern - the pattern String to filter for.
    • thread

      ThreadReference thread()
      Specified by:
      thread in interface StepRequest
      Returns:
      the thread on which the step event is being requested.