Package 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

Modifier and Type
Method
Description
`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 Details

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