org.eclipse.debug.core.model

## Interface IStep

All Known Subinterfaces:
  IFilteredStep, IStackFrame, IThread

    public interface IStep

Provides the ability to step into, over, and return from the current execution location. Implementations must be non-blocking.

Implementations should honor step filter settings in their associated debug target, as defined by `IStepFilters`.

Clients may implement this interface.

See Also:
  `IStepFilters`

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `canStepInto()` Returns whether this element can currently perform a step into.
`boolean` `canStepOver()` Returns whether this element can currently perform a step over.
`boolean` `canStepReturn()` Returns whether this element can currently perform a step return.
`boolean` `isStepping()` Returns whether this element is currently stepping.
`void` `stepInto()` Steps into the current statement, generating `RESUME` and `SUSPEND` events for the associated thread.
`void` `stepOver()` Steps over the current statement, generating `RESUME` and `SUSPEND` events for the associated thread.
`void` `stepReturn()` Steps to the next return statement in the current scope, generating `RESUME` and `SUSPEND` events for the associated thread.

### Method Detail

#### canStepInto

    boolean canStepInto()

Returns whether this element can currently perform a step into.

Returns:
  whether this element can currently perform a step into

#### canStepOver

    boolean canStepOver()

Returns whether this element can currently perform a step over.

Returns:
  whether this element can currently perform a step over

#### canStepReturn

    boolean canStepReturn()

Returns whether this element can currently perform a step return.

Returns:
  whether this element can currently perform a step return

#### isStepping

    boolean isStepping()

Returns whether this element is currently stepping.

For example, a thread is considered to be stepping after the `stepOver` call until the step over is completed, a breakpoint is reached, an exception is thrown, or the thread or debug target is terminated.

Returns:
  whether this element is currently stepping

#### stepInto

    void stepInto()
           throws DebugException

Steps into the current statement, generating `RESUME` and `SUSPEND` events for the associated thread. Can only be called when the associated thread is suspended. Implementations must implement stepping as non-blocking.

Throws:
  `DebugException` - on failure. Reasons include:
  - TARGET_REQUEST_FAILED - The request failed in the target
  - NOT_SUPPORTED - The capability is not supported by the target

#### stepOver

    void stepOver()
           throws DebugException

Steps over the current statement, generating `RESUME` and `SUSPEND` events for the associated thread. Can only be called when the associated thread is suspended. Implementations must implement stepping as non-blocking.

Throws:
  `DebugException` - on failure. Reasons include:
  - TARGET_REQUEST_FAILED - The request failed in the target
  - NOT_SUPPORTED - The capability is not supported by the target

#### stepReturn

    void stepReturn()
             throws DebugException

Steps to the next return statement in the current scope, generating `RESUME` and `SUSPEND` events for the associated thread. Can only be called when the associated thread is suspended. Implementations must implement stepping as non-blocking.

Throws:
  `DebugException` - on failure. Reasons include:
  - TARGET_REQUEST_FAILED - The request failed in the target
  - NOT_SUPPORTED - The capability is not supported by the target