Package org.eclipse.jdi.hcr

# 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.

## Field Summary

### Fields inherited from interface com.sun.jdi.request.EventRequest

`SUSPEND_ALL, SUSPEND_EVENT_THREAD, SUSPEND_NONE`

### Fields inherited from interface com.sun.jdi.request.StepRequest

`STEP_INTO, STEP_LINE, STEP_MIN, STEP_OUT, STEP_OVER`

## Method Summary

Modifier and Type
Method
Description
`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.
`void`
`addClassFilter(ReferenceType clazz)`
Restricts the events generated by this request to those whose location is in this class..
`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.
`ThreadReference`
`thread()`

### Methods inherited from interface com.sun.jdi.request.EventRequest

`addCountFilter, disable, enable, getProperty, isEnabled, putProperty, setEnabled, setSuspendPolicy, suspendPolicy`

### Methods inherited from interface com.sun.jdi.Mirror

`toString, virtualMachine`

### Methods inherited from interface com.sun.jdi.request.StepRequest

`addInstanceFilter, depth, size`

## 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.