| 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:
- The arguments to the method are carefully set aside, along with the identity of the
actual method.
- 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.
- Suspend the thread depending on the suspend policy and report a
StepEvent
for this request.
- 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.
- 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.
|