# Stepping through the execution of a Java program

When a thread is suspended, the step controls can be used to step through the execution of the program line-by-line. If a breakpoint is encountered while performing a step operation, the execution will suspend at the breakpoint and the step operation is ended.

## Step over

1. Select a stack frame in the Debug view. The current line of execution in that stack frame is highlighted in the editor in the Debug perspective.
2. Click the Step Over button in the Debug view toolbar, or press the `F6` key. The currently-selected line is executed and suspends on the next executable line.

## Step into

1. Select a stack frame in the Debug view. The current line of execution in the selected frame is highlighted in the editor in the Debug perspective.
2. Click the Step Into button in the Debug view toolbar, or press the `F5` key. The next expression on the currently-selected line to be executed is invoked, and execution suspends at the next executable line in the method that is invoked.

## Step into Selection

1. Select a stack frame in the Debug view. The current line of execution in the selected frame is highlighted in the editor in the Debug perspective.
2. In the Java editor, within the current line of execution, place the cursor on the name of a method that you would like to step into.
3. Click the Step into Selection action in the Run menu or Java editor context menu, or press the `Ctrl-F5` key. Execution resumes until the selected method is invoked.

## Step with filters

1. Toggle the Use Step Filters button in the Debug view toolbar, or use `Shift+F5`. When the action is toggled on, each of the step actions (over, into, return) will apply the set of step filters which are defined in the user preferences (see Window > Preferences > Java > Debug > Step Filtering). When a step action is invoked, stepping will continue until an unfiltered location is reached or a breakpoint is encountered.

## Run to return

1. Select a stack frame in the Debug view. The current line of execution in the selected frame is highlighted in the editor in the Debug perspective.
2. Click the Run to Return button in the Debug view toolbar or press the `F7` key. Execution resumes until the next return statement in the current method is executed, and execution suspends on the next executable line.

## Run to line

When a thread is suspended, it is possible to resume execution until a specified line is executed. This is a convenient way to suspend execution at a line without setting a breakpoint.

1. Place your cursor on the line at which you want the program to run.
2. Select Run to Line from the pop-up menu or use `Ctrl+R`. Program execution is resumed and suspends just before the specified line is to be executed.

It is possible that the line will never be hit and that the program will not suspend.

Breakpoints and exceptions can cause the thread to suspend before reaching the specified line.

Breakpoints
Java perspectives

Adding breakpoints
Launching a Java program
Resuming the execution of suspended threads
Running and debugging
Setting execution arguments
Suspending threads

Debug view