# Set execution point

The Set Execution Point action allows you to jump to an arbitrary line of code in the editor during a debug session and set the execution point there, skipping all the other commands in between.

This action works for both linear and non-linear execution paths. Use it to break and skip loops, or select another branch in an `if-else` clause  expression or `switch -case` statement. For example, this action can be useful if you want to check another branch without restarting the debug session.

> **Note:**
> You can move the execution pointer in both directions, forward and backward. It works in [Disassembly view](disassembly-view.html) as well.

Procedure: Invoke Set Execution Point

Use one of the following options:

* Drag the orange arrow ![](https://resources.jetbrains.com/help/img/idea/2026.2/app-client.debugger.nextStatement.svg) in the gutter to the required line of code.

![Execution pointer in the gutter](https://resources.jetbrains.com/help/img/idea/2026.2/cl_set_execution_gutter.png)

* Place the caret at the required line and call Set Execution Point to Cursor from `Help | Find Action` (`Ctrl+Shift+A` (Windows), `⌘ ⇧ A` (macOS), `⌘ ⇧ A` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ P` (macOS System Shortcuts), `Ctrl+Shift+A` (XWin), `Ctrl+Shift+A` (GNOME), `Ctrl+Shift+A` (KDE), `Escape, X` (Emacs), `Ctrl+Shift+P` (Sublime Text), `⌘ ⇧ P` (Sublime Text (macOS)), `⌘ ⇧ A` (Xcode), `Ctrl+Shift+A` (Visual Studio), `⌘ ⇧ A` (Visual Studio (macOS)), `Ctrl+Shift+A` (ReSharper), `⌘ ⇧ A` (ReSharper (macOS)), `Ctrl+Shift+A` (QtCreator), `⌘ ⇧ A` (QtCreator (macOS)), `Ctrl+I` (NetBeans), `Ctrl+Shift+A` (Eclipse), `⌘ 3` (Eclipse (macOS))).

![Set Execution Point in Find Action](https://resources.jetbrains.com/help/img/idea/2026.2/cl_set_execution_findaction.png)

* In `Settings | Keymap`, assign a shortcut for the Set Execution Point to Cursor action.

![Assigning a shortcut to Set Execution Point](https://resources.jetbrains.com/help/img/idea/2026.2/cl_set_execution_shortcut.png)

Save the settings, place the caret at the required line, and use the shortcut.

As a result, execution will be resumed from the new location, skipping the commands in between.

![Set execution point](https://resources.jetbrains.com/help/img/idea/2026.2/cl_set_execution_linear.animated.gif)

When using Set Execution Point, make sure to take the possible negative consequences into account:

* If you jump over the line at which a variable is initialized, you will get the value from the stack/register.

* In case the executable code was optimized by the compiler, you might get an unpredictable result or be unable to move the execution point at all.

* If you jump to a function that is not called in the current control flow graph, CLion will warn you that the execution might be broken ([not supported for GDB](https://youtrack.jetbrains.com/issue/CPP-21799) currently).

* Also, there are other known issues like the multiple candidates exist error ([CPP-21800](https://youtrack.jetbrains.com/issue/CPP-21800)) and problems with `std::cin` and `std::cout` ([CPP-22055](https://youtrack.jetbrains.com/issue/CPP-22055)).

## See also

### Procedures

[Stepping through](stepping-through-the-program.html) [Breakpoints](using-breakpoints.html)

### External Links

[Webinar Recording: CLion Ask Me Anything Session: Debugger](https://www.youtube.com/watch?v=Kz5NQiji9YU5&t=244s) [CLion Debugging Beyond the Basics - Part 2 - Dynamic](https://blog.jetbrains.com/clion/2021/03/clion-debugging-beyond-the-basics-part-2-dynamic) [Video playlist: CLion Debugger](https://www.youtube.com/playlist?list=PLQ176FUIyIUawCufBKmmWkRq2t5sl1xsM)

